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 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.
Penggabungan Koneksi Terkelola memerlukan nomor versi pemeliharaan
minimum POSTGRES_$version.R20250302.00_04. Untuk mengetahui informasi selengkapnya, 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. 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 penggabung Managed Connection Pooling. Untuk terhubung menggunakan port ini, tentukan psql -p 6432 saat terhubung langsung menggunakan klien psql.
Port TCP 3307: digunakan untuk koneksi hanya Proxy Auth Cloud SQL oleh penggabung Managed Connection Pooling. Saat Anda menggunakan Proxy Auth Cloud SQL untuk terhubung ke pooler Managed Connection Pooling, 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 parameter pool_mode:
transaction (default): mengumpulkan koneksi di tingkat transaksi.
max_pool_size: ukuran maksimum pool koneksi. Nilai defaultnya adalah 50 koneksi.
min_pool_size: ukuran minimum kumpulan koneksi. Jika jumlah
koneksi server kurang dari min_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 defaultnya 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 pernyataan.
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 Penggabungan Koneksi Terkelola 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
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 Penggabungan Koneksi Terkelola. Jika Anda mengaktifkan simpan alamat IP klien di insight kueri, alamat IP klien akan ditampilkan sebagai local, bukan alamat IP itu sendiri.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-03 UTC."],[],[],null,["# Managed Connection Pooling overview\n\n\u003cbr /\u003e\n\n[MySQL](/sql/docs/mysql/managed-connection-pooling \"View this page for the MySQL database engine\") \\| PostgreSQL \\| SQL Server\n\n\u003cbr /\u003e\n\n|\n| **Preview\n| --- [Managed Connection Pooling](/sql/docs/postgres/managed-connection-pooling)**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| You can process personal data for this feature as outlined in the\n| [Cloud Data Processing\n| Addendum](/terms/data-processing-addendum), subject to the obligations and restrictions described in the agreement under\n| which you access Google Cloud.\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nThis page describes what Managed Connection Pooling is and how to use it with your\nCloud SQL instances.\n\nManaged Connection Pooling lets you scale your workloads by optimizing resource utilization\nand connection latency for your Cloud SQL for PostgreSQL instances using pooling.\n\nManaged Connection Pooling dynamically assigns server connections to\nincoming requests when possible. This delivers significant performance\nimprovements, especially for scaled connections, by absorbing sudden\nconnection spikes and reusing existing database connections. Instead of\nconnecting to a particular database, Managed Connection Pooling connects to a\ncluster of poolers, which provide shorter connection times and scalability\nfor your workloads. The number of poolers used is based on the number of vCPU\ncores of your instance.\n\n\nWhile you can use Managed Connection Pooling for any transactional workloads,\nManaged Connection Pooling provides the most throughput and latency benefit with applications\nthat contain short-lived connections, or applications that result in a\nconnection surge.\n\nFor long-lived connections, the connection performance using\nManaged Connection Pooling can be slightly lower than when using a direct\nconnection. In this case, Managed Connection Pooling provides connection\nscaling when the number of connections is very high. However, for\napplications that typically establish long-lived connections, you might use\ndirect connections to your instance instead.\n\nFor more information on how to enable Managed Connection Pooling, see\n[Configure Managed Connection Pooling](/sql/docs/postgres/configure-mcp).\n\nRequirements\n------------\n\nTo use Managed Connection Pooling, your instance must meet the following requirements:\n\n- Your instance must be a Cloud SQL Enterprise Plus edition instance.\n- You must be connected to your instance using a direct connection, or the Cloud SQL Auth Proxy only.\n- You must be connected to your instance using a valid username and password. IAM and IAM group users aren't supported when using Managed Connection Pooling.\n- Your instance must either be set up for [private service access](/sql/docs/postgres/private-ip#set_up_private_services_access_for_your_network), use public IP, or be a new instance with [Private Service Connect](/sql/docs/postgres/about-private-service-connect) enabled.\n- Your instance must use the new [Cloud SQL network architecture](/sql/docs/postgres/upgrade-cloud-sql-instance-new-network-architecture).\n- Managed Connection Pooling requires a minimum maintenance version number of `POSTGRES_$version.R20250302.00_04`. For more information, see [Perform self-service maintenance](/sql/docs/postgres/self-service-maintenance).\n\nPorts used by Managed Connection Pooling for Cloud SQL instances\n----------------------------------------------------------------\n\nWhen you enable Managed Connection Pooling, the ports used by Cloud SQL instances to serve database traffic change. The ports used by Managed Connection Pooling are as follows:\n\n- **TCP port 5432** : used for direct connections by the Postgres database server. This is the default port number used when [directly connecting using psql client](/sql/docs/postgres/connect-admin-ip#connect).\n- **TCP port 6432** : used for direct connections by the Managed Connection Pooling pooler. To connect using this port, specify `psql -p 6432` when [directly connecting using psql client](/sql/docs/postgres/connect-admin-ip#connect).\n- **TCP port 3307**: used for the Cloud SQL Auth Proxy only connections by a Managed Connection Pooling pooler. When you use Cloud SQL Auth Proxy to connect to Managed Connection Pooling pooler, this port number is configured with the Cloud SQL Auth Proxy client and can't be changed.\n\nAvailable configuration options\n-------------------------------\n\nManaged Connection Pooling offers the following pooling options that you can set using the `pool_mode` parameter:\n\n\u003cbr /\u003e\n\n- `transaction` (default): pools connections at a transaction level.\n- `session`: pools connections at a session level.\n\n| **Note:** The maximum number of server connections used by the pooler in Managed Connection Pooling is limited by the `max_connections` database configuration. Cloud SQL recommends adjusting this value based on your instance's workload requirements and the database instance size. For more information about the `max_connections` flag, see [Maximum concurrent connections](/sql/docs/quotas#maximum_concurrent_connections). To modify the `max_connections` database configuration flag for your instance, see [Configure database flags](/sql/docs/postgres/flags#config).\n\nYou can also\n[customize Managed Connection Pooling](/sql/docs/postgres/configure-mcp#modify-mcp)\nby using the following configuration parameters:\n\n- `max_pool_size`: the maximum size of the connection pool. The default value is 50 connections.\n- `min_pool_size`: the threshold size of the connection pool. If the number of server connections is less than `min_pool_size`, then add more server connections to the pool. The default value is 0 connections.\n- `max_client_connections`: the maximum number of connections allowed for your instance. The default value is 5,000 connections.\n- `client_connection_idle_timeout`: the time that a client-connection remains idle before it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 0 seconds.\n- `server_connection_idle_timeout`: the time that a server connection remains idle before it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 600 seconds.\n- `query_wait_timeout`: the time that a query waits until it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 120 seconds.\n- `max_prepared_statements`: the maximum number of protocol-level named prepared statements commands supported in transaction pooling mode. The default value is 0 statements.\n- `ignore_startup_parameters`: the parameters you want ignored, that aren't tracked in Managed Connection Pooling's startup packets by default.\n- `server_lifetime`: the maximum time a server connection is unused before Managed Connection Pooling closes it. The default value is 3600 seconds.\n\nLimitations\n-----------\n\nConsider the following limitations when using Managed Connection Pooling with\nyour Cloud SQL Enterprise Plus edition instances:\n\n- Enabling Managed Connection Pooling on an existing instance results in a database restart.\n- When you use the Cloud SQL API to enable, disable, or configure Managed Connection Pooling, the `instance.update` API can't contain any other instance configuration updates.\n- Managed Connection Pooling can only be used with Cloud SQL Auth Proxy version 2.15.2 and later.\n- If you're using the Cloud SQL Go Language Connector, then we recommend a minimum Go version of `1.24`. If you use Go version 1.23 or earlier, then you might experience limitations on performance when using Managed Connection Pooling.\n- If you're using Managed Connection Pooling in `transaction` pooling mode, then\n the following SQL features aren't supported:\n\n - `SET/RESET`\n - `LISTEN`\n - `WITH HOLD CURSOR`\n - `PREPARE/DEALLOCATE`\n - `PRESERVE/DELETE ROW` temp tables\n - `LOAD`\n - Session-level advisory locks\n- If you're using the\n [asyncpg database interface library](https://magicstack.github.io/asyncpg/current/)\n for Managed Connection Pooling pooler on port 3307 and 6432, then you must update the\n `max_prepared_statements` to a value larger than 0 to enable support for\n prepared statements in Managed Connection Pooling pooler.\n\n- If you're using Cloud SQL for PostgreSQL version 17, then the\n `sslnegotiation=direct` option isn't supported.\n\n- Client IP tracking isn't supported with Managed Connection Pooling. If you enable\n *store client IP addresses* in [query insights](/sql/docs/postgres/using-query-insights),\n then client IP addresses are displayed as `local` instead of the IP address\n itself.\n\nWhat's next\n-----------\n\n- [Create an instance](/sql/docs/postgres/create-instance)\n- [Configure Managed Connection Pooling](/sql/docs/postgres/configure-mcp)"]]