Halaman ini menjelaskan apa yang dimaksud dengan Managed Connection Pooling dan cara menggunakannya dengan instance Cloud SQL Anda.
Penggabungan Koneksi Terkelola memungkinkan Anda menskalakan beban kerja dengan mengoptimalkan pemanfaatan resource dan latensi koneksi untuk instance Cloud SQL untuk PostgreSQL menggunakan penggabungan. 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. Jumlah pooler yang digunakan didasarkan pada jumlah core vCPU instance Anda.
Meskipun Anda dapat menggunakan Managed Connection Pooling untuk beban kerja transaksional apa pun, Managed Connection Pooling memberikan manfaat throughput dan latensi terbesar dengan 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 berlangsung lama, Anda dapat menggunakan koneksi langsung ke instance Anda.
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 koneksi langsung, atau hanya Proxy Auth Cloud SQL.
- Anda harus terhubung ke instance menggunakan nama pengguna dan sandi yang valid. Pengguna grup IAM dan IAM tidak didukung saat menggunakan Managed Connection Pooling.
- 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.R20250302.00_04
. Untuk mengetahui informasi selengkapnya, lihat 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. Port yang digunakan oleh Managed Connection Pooling adalah sebagai berikut:
- Port TCP 5432: digunakan untuk koneksi langsung oleh server database Postgres. Ini adalah nomor port default yang digunakan saat terhubung langsung menggunakan klien psql.
- Port TCP 6432: digunakan untuk koneksi langsung oleh server PgBouncer. Untuk terhubung menggunakan port ini, tentukan
psql -p 6432
saat terhubung langsung menggunakan klien psql. - Port TCP 3307: digunakan untuk koneksi khusus Proxy Auth Cloud SQL oleh server PgBouncer. Saat Anda menggunakan Proxy Auth Cloud SQL untuk terhubung ke Pgbouncer, nomor port ini dikonfigurasi dengan klien Proxy Auth Cloud SQL dan tidak dapat diubah.
Opsi konfigurasi yang tersedia
Managed Connection Pooling menawarkan opsi penggabungan berikut yang dapat Anda tetapkan menggunakan parameterpool_mode
:
transaction
(default): mengumpulkan koneksi di tingkat transaksi.session
: mengumpulkan koneksi di tingkat sesi.
Anda juga dapat menyesuaikan Managed Connection Pooling dengan menggunakan parameter konfigurasi berikut:
max_pool_size
: ukuran maksimum pool koneksi. Nilai defaultnya adalah 50 koneksi.min_pool_size
: ukuran minimum kumpulan koneksi. Jika jumlah koneksi server kurang darimin_pool_size
, tambahkan lebih banyak koneksi server ke kumpulan. Nilai defaultnya adalah 0 koneksi.max_client_connections
: jumlah maksimum koneksi yang diizinkan untuk instance Anda. Nilai defaultnya adalah 5.000 koneksi.client_connection_idle_timeout
: waktu saat koneksi klien tetap tidak aktif sebelum waktu koneksi 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 aktif sebelum koneksi berakhir. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 600 detik.query_wait_timeout
: waktu tunggu kueri hingga waktunya habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 120 detik.max_prepared_statements
: jumlah maksimum perintah pernyataan yang disiapkan bernama tingkat protokol yang didukung dalam mode penggabungan transaksi. Nilai defaultnya adalah 0.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. Nilai default-nya adalah 3.600 detik.
Batasan
Pertimbangkan batasan berikut saat menggunakan Managed Connection Pooling dengan instance edisi Cloud SQL Enterprise Plus Anda:
- 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, API
instance.update
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 Cloud SQL untuk PostgreSQL versi 17, opsi
sslnegotiation=direct
tidak didukung.