Halaman ini menjelaskan apa yang dimaksud dengan Managed Connection Pooling dan cara menggunakannya untuk mengoptimalkan pengelolaan koneksi database untuk instance Cloud SQL Anda menggunakan pooling.
Pengumpulan Koneksi Terkelola memungkinkan Anda menskalakan beban kerja dengan mengoptimalkan penggunaan resource dan latensi koneksi untuk instance Cloud SQL menggunakan pengumpulan. Penggabungan Koneksi Terkelola secara dinamis menetapkan koneksi server ke permintaan masuk jika memungkinkan. Hal ini memberikan peningkatan performa yang signifikan, terutama untuk koneksi yang diskalakan, dengan menyerap lonjakan koneksi yang tiba-tiba dan menggunakan kembali koneksi database yang ada. Alih-alih terhubung ke database tertentu, Managed Connection Pooling terhubung ke cluster pooler, yang memberikan waktu koneksi yang lebih singkat dan skalabilitas untuk workload Anda.
Setiap kumpulan dikaitkan dengan database dan pengguna yang unik. Setelah klien diautentikasi, kumpulan akan mencoba menggunakan kembali salah satu koneksi server yang tidak aktif dalam kumpulan untuk menghubungkan database ke server. Jika koneksi server tidak tersedia, maka koneksi server baru akan dibuat di kumpulan untuk menghubungkan database. Jumlah pooler yang digunakan didasarkan pada jumlah inti vCPU instance Anda.
Meskipun Anda dapat menggunakan Managed Connection Pooling untuk workload transaksional apa pun, fitur ini memberikan manfaat throughput dan latensi terbesar untuk aplikasi yang berisi koneksi singkat, atau aplikasi yang menghasilkan lonjakan koneksi.
Untuk koneksi yang berjalan lama, performa koneksi menggunakan Managed Connection Pooling dapat sedikit lebih rendah daripada saat menggunakan koneksi langsung. Dalam hal ini, Managed Connection Pooling menyediakan penskalaan koneksi saat jumlah koneksi sangat tinggi. Namun, untuk aplikasi yang biasanya membuat koneksi yang memakan waktu lama, Anda mungkin ingin menghindari penggunaan penggabungan koneksi.
Anda dapat menggunakan Identity and Access Management untuk mengamankan koneksi, bergantung pada port. Untuk mengetahui informasi selengkapnya tentang cara kerja IAM di Cloud SQL dan batasannya, lihat Autentikasi IAM.
Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan Managed Connection Pooling, lihat Mengonfigurasi Managed Connection Pooling.
Persyaratan
Untuk menggunakan Managed Connection Pooling, instance Anda harus memenuhi persyaratan berikut:
- Instance Anda harus berupa instance edisi Cloud SQL Enterprise Plus.
- Anda harus terhubung ke instance menggunakan hanya koneksi langsung atau Proxy Auth Cloud SQL.
- Instance Anda harus disiapkan untuk akses layanan pribadi, menggunakan IP publik, atau berupa instance baru dengan Private Service Connect yang diaktifkan.
- Instance Anda harus menggunakan arsitektur jaringan Cloud SQL yang baru.
- Penggabungan Koneksi Terkelola memerlukan nomor versi pemeliharaan
minimum
POSTGRES_$version.R20250727.00_14
. Untuk mengetahui informasi selengkapnya tentang cara melakukan pemeliharaan mandiri, lihat Melakukan pemeliharaan mandiri.
Port yang digunakan oleh Managed Connection Pooling untuk instance Cloud SQL
Saat Anda mengaktifkan Managed Connection Pooling, port yang digunakan oleh instance Cloud SQL untuk melayani traffic database akan berubah. Anda dapat menggunakan Identity and Access Management untuk mengamankan koneksi, bergantung pada port.
Port yang digunakan oleh Managed Connection Pooling dan opsi IAM yang tersedia adalah sebagai berikut:
Port TCP 5432: digunakan untuk koneksi langsung oleh server database Postgres. Ini adalah nomor port default untuk terhubung secara langsung menggunakan klien psql.
Port TCP 6432: digunakan untuk koneksi langsung oleh server Managed Connection Pooling. Untuk terhubung menggunakan port ini, tentukan
psql -p 6432
saat terhubung langsung menggunakan klien psql.Anda dapat menggunakan opsi autentikasi IAM saat menggunakan port ini.
Port TCP 3307: digunakan untuk koneksi hanya Proxy Auth Cloud SQL oleh server Managed Connection Pooling. Saat Anda menggunakan Proxy Auth Cloud SQL untuk terhubung ke Penggabungan Koneksi Terkelola, nomor port ini dikonfigurasi dengan klien Proxy Auth Cloud SQL dan tidak dapat diubah.
Anda dapat menggunakan opsi autentikasi IAM, atau autentikasi database IAM otomatis dengan port ini.
Opsi penggabungan
Penggabungan Koneksi Terkelola memungkinkan Anda mengelola cara penggabungan koneksi menggunakan parameter
pool_mode
. Anda dapat menggunakan opsi penggabungan berikut:
transaction
(default): mengumpulkan koneksi di tingkat transaksi. Koneksi dikembalikan ke pool setelah setiap transaksi selesai. Cloud SQL merekomendasikan penggunaan mode penggabungantransaction
untuk koneksi yang berumur pendek.session
: mengumpulkan koneksi di tingkat sesi. Setiap sesi menggunakan koneksi server khusus yang mempertahankan status sesi. Hal ini mengurangi efisiensi penggabungan. Saat klien terputus, server akan kembali ke kumpulan koneksi.
Opsi konfigurasi lanjutan
Anda dapat menyesuaikan Managed Connection Pooling dengan menggunakan opsi konfigurasi berikut:
Nama konfigurasi | Deskripsi |
---|---|
max_pool_size
|
Jumlah maksimum koneksi server yang diizinkan ke pasangan database dan pengguna di setiap kumpulan koneksi. Nilai defaultnya adalah 50 koneksi. |
min_pool_size
|
Jumlah minimum koneksi server yang tersedia kapan saja di
setiap kumpulan koneksi.
Jika jumlah koneksi server kurang dari min_pool_size ,
maka setelan ini akan menambahkan lebih banyak koneksi server ke kumpulan. Hal ini membantu mengelola peningkatan beban database yang tiba-tiba setelah periode tidak aktif dan memastikan koneksi tersedia dan siap digunakan.
Nilai defaultnya adalah 0 koneksi. |
max_client_connections
|
Jumlah maksimum koneksi yang diizinkan untuk instance Anda saat menggunakan Managed Connection Pooling. Nilai defaultnya adalah 5.000 koneksi. |
max_prepared_statements
|
Jumlah maksimum pernyataan siap pakai bernama tingkat protokol yang didukung
dalam mode penggabungan transaction .
Menetapkan opsi ini ke 0 akan menonaktifkan dukungan pernyataan yang disiapkan. Untuk performa yang optimal, nilai ini harus melebihi jumlah pernyataan siap pakai yang umum digunakan dalam database Anda. Sejumlah besar pernyataan yang disiapkan dalam Managed Connection Pooling dapat menyebabkan peningkatan penggunaan memori. Nilai defaultnya adalah 0 pernyataan. |
client_connection_idle_timeout
|
Waktu saat koneksi klien tetap tidak ada aktivitas sebelum waktu tunggu habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 0 detik. |
server_connection_idle_timeout
|
Waktu koneksi server tetap tidak ada aktivitas sebelum batas waktunya habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 600 detik. |
query_wait_timeout
|
Waktu kueri menunggu koneksi server di kumpulan sebelum
waktunya habis.
Menyetel opsi ini ke 0 akan menonaktifkannya, sehingga memungkinkan antrean klien tanpa batas. Mengaktifkan opsi ini mencegah server yang tidak responsif menahan koneksi. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 120 detik. |
ignore_startup_parameters
|
Parameter yang ingin Anda abaikan, yang tidak dilacak dalam paket startup Managed Connection Pooling secara default. |
server_lifetime
|
Waktu maksimum koneksi server tidak digunakan sebelum Managed Connection Pooling
menutupnya. Jika nilai ditetapkan ke 0 detik, koneksi
akan segera ditutup setelah digunakan.
Nilai default-nya adalah 3.600 detik. |
Batasan
Saat menggunakan Managed Connection Pooling dengan instance edisi Cloud SQL Enterprise Plus, pertimbangkan batasan berikut:
- Mengaktifkan Managed Connection Pooling di instance yang ada akan menyebabkan database dimulai ulang.
- Saat Anda menggunakan Cloud SQL API untuk mengaktifkan, menonaktifkan, atau mengonfigurasi
Managed Connection Pooling,
instance.update
API tidak boleh berisi update konfigurasi instance lainnya. - Penggabungan Koneksi Terkelola hanya dapat digunakan dengan Proxy Auth Cloud SQL versi 2.15.2 dan yang lebih baru.
- Jika Anda menggunakan Cloud SQL Go Language Connector, sebaiknya gunakan versi Go minimum
1.24
. Jika Anda menggunakan Go versi 1.23 atau yang lebih lama, Anda mungkin mengalami batasan performa saat menggunakan Managed Connection Pooling. Jika Anda menggunakan Managed Connection Pooling dalam mode penggabungan
transaction
, maka fitur SQL berikut tidak didukung:SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
- Tabel sementara
PRESERVE/DELETE ROW
LOAD
- Kunci saran tingkat sesi
Jika Anda menggunakan library antarmuka database asyncpg untuk pooler Managed Connection Pooling di port 3307 dan 6432, Anda harus mengupdate
max_prepared_statements
ke nilai yang lebih besar dari 0 untuk mengaktifkan dukungan bagi pernyataan yang disiapkan di pooler Managed Connection Pooling.Jika Anda menggunakan Cloud SQL untuk PostgreSQL versi 17, opsi
sslnegotiation=direct
tidak didukung.Pelacakan IP klien tidak didukung dengan Managed Connection Pooling. Jika Anda mengaktifkan simpan alamat IP klien di insight kueri, alamat IP klien akan ditampilkan sebagai
local
, bukan alamat IP itu sendiri.Jika instance Anda menggunakan Proxy Auth Cloud SQL dan Managed Connection Pooling diaktifkan, autentikasi database IAM manual tidak didukung. Anda hanya dapat menggunakan autentikasi IAM otomatis.
Koneksi server yang digunakan oleh Managed Connection Pooling
Konfigurasi database max_connections
membatasi jumlah maksimum koneksi server yang dapat digunakan pooler dalam Managed Connection Pooling.
Cloud SQL merekomendasikan penyesuaian nilai ini berdasarkan persyaratan beban kerja instance dan ukuran instance database. Selama beban puncak,
jumlah koneksi untuk autentikasi dapat menjadi sangat tinggi.
Jika Anda menggunakan max_pool_size
default 50 kumpulan di instance, sebaiknya cadangkan setidaknya 15 koneksi server per CPU untuk Managed Connection Pooling saat Anda menetapkan tanda max_connections
untuk database.
Untuk mengetahui informasi selengkapnya tentang flag max_connections
, lihat
Koneksi serentak maksimum.
Untuk mengubah flag max_connections
untuk instance Anda,
lihat Mengonfigurasi flag database.