Questa pagina descrive che cos'è il pooling delle connessioni gestite e come utilizzarlo con le tue istanze Cloud SQL.
Il pooling delle connessioni gestite ti consente di scalare i tuoi carichi di lavoro ottimizzando l'utilizzo delle risorse e la latenza di connessione per le tue istanze Cloud SQL per PostgreSQL utilizzando il pooling. Il pool di connessioni gestito assegna dinamicamente le connessioni del server alle richieste in arrivo, se possibile. Ciò consente significativi miglioramenti delle prestazioni, in particolare per le connessioni scalate, assorbendo i picchi improvvisi delle connessioni e riutilizzando le connessioni al database esistenti. Anziché collegarsi a un determinato database, il pool di connessioni gestite si connette a un cluster di pooler, che offrono tempi di connessione più brevi e scalabilità per i tuoi workload. Il numero di pooler utilizzati si basa sul numero di core vCPU della tua istanza.
Sebbene tu possa utilizzare il pooling delle connessioni gestito per qualsiasi carico di lavoro transazionale, il pooling delle connessioni gestito offre il maggior vantaggio in termini di throughput e latenza con le applicazioni che contengono connessioni di breve durata o applicazioni che generano un picco di connessioni.
Per le connessioni di lunga durata, le prestazioni della connessione che utilizza il pool di connessioni gestito possono essere leggermente inferiori rispetto a quelle di una connessione diretta. In questo caso, il pool di connessioni gestite consente di eseguire lo scaling delle connessioni quando il numero di connessioni è molto elevato. Tuttavia, per le applicazioni che in genere stabiliscono connessioni di lunga durata, puoi utilizzare connessioni dirette alla tua istanza.
Per ulteriori informazioni su come attivare il pooling delle connessioni gestite, consulta Configurare il pooling delle connessioni gestite.
Requisiti
Per utilizzare il pooling delle connessioni gestito, l'istanza deve soddisfare i seguenti requisiti:
- L'istanza deve essere una versione Cloud SQL Enterprise Plus.
- Devi essere connesso all'istanza utilizzando una connessione diretta o solo il proxy di autenticazione Cloud SQL.
- Devi essere connesso all'istanza utilizzando un nome utente e una password validi. Gli utenti IAM e dei gruppi IAM non sono supportati quando si utilizza il pool di connessioni gestito.
- L'istanza deve essere configurata per l'accesso ai servizi privati, utilizzare un IP pubblico o essere una nuova istanza con Private Service Connect abilitato.
- L'istanza deve utilizzare la nuova architettura di rete Cloud SQL.
- Il pooling delle connessioni gestite richiede un numero di versione di manutenzione minima di
POSTGRES_$version.R20250302.00_04
. Per ulteriori informazioni, consulta la pagina Manutenzione self-service.
Opzioni di configurazione disponibili
Il pool di connessioni gestito offre le seguenti opzioni di pooling che puoi impostare utilizzando il parametropool_mode
:
transaction
(valore predefinito): raggruppa le connessioni a livello di transazione.session
: raggruppa le connessioni a livello di sessione.
Puoi anche personalizzare il pooling delle connessioni gestite utilizzando i seguenti parametri di configurazione:
max_pool_size
: la dimensione massima del pool di connessioni. Il valore predefinito è 50 connessioni.min_pool_size
: la dimensione di soglia del pool di connessioni. Se il numero di connessioni al server è inferiore amin_pool_size
, aggiungi altre connessioni al server al pool. Il valore predefinito è 0 connessioni.max_client_connections
: il numero massimo di connessioni consentite per la tua istanza. Il valore predefinito è 5000 connessioni.client_connection_idle_timeout
: il tempo che una connessione client rimane inattiva prima del timeout. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 0 secondi.server_connection_idle_timeout
: il tempo che una connessione al server rimane inattiva prima del timeout. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 600 secondi.query_wait_timeout
: il tempo di attesa di una query prima del timeout. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 120 secondi.max_prepared_statements
: il numero massimo di comandi di istruzioni preparate con nome a livello di protocollo supportati in modalità di raggruppamento delle transazioni. Il valore predefinito è 0.ignore_startup_parameters
: i parametri da ignorare, che per impostazione predefinita non vengono monitorati nei pacchetti di avvio del pool di connessioni gestito.server_lifetime
: il tempo massimo durante il quale una connessione al server rimane inutilizzata prima che il pool di connessioni gestito la chiuda. Il valore predefinito è 3600 secondi.
Limitazioni
Tieni presenti le seguenti limitazioni quando utilizzi il pool di connessioni gestito con le istanze della versione Cloud SQL Enterprise Plus:
- L'attivazione del pool di connessioni gestito su un'istanza esistente comporta il riavvio del database.
- Quando utilizzi l'API Cloud SQL per attivare, disattivare o configurare il pooling delle connessioni gestite, l'API
instance.update
non può contenere altri aggiornamenti della configurazione dell'istanza. - Il pooling delle connessioni gestite può essere utilizzato solo con la versione 2.15.2 e successive del proxy di autenticazione Cloud SQL.
- Se utilizzi il connettore per il linguaggio Go di Cloud SQL, ti consigliamo una versione minima di Go pari a
1.24
. Se utilizzi la versione 1.23 o precedenti di Go, potresti riscontrare limitazioni delle prestazioni quando utilizzi il pool di connessioni gestito. Se utilizzi il pool di connessioni gestito in modalità di pooling
transaction
, le seguenti funzionalità SQL non sono supportate:SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tabelle temporaneeLOAD
- Blocchi di consulenza a livello di sessione
Se utilizzi Cloud SQL per PostgreSQL versione 17, l'opzione
sslnegotiation=direct
non è supportata.