Questa pagina descrive cos'è il pooling di connessioni gestito e come utilizzarlo con le istanze Cloud SQL.
Il pooling delle connessioni gestito consente di scalare i carichi di lavoro ottimizzando l'utilizzo delle risorse e la latenza di connessione per le istanze Cloud SQL per PostgreSQL utilizzando il pooling. Il pool di connessioni gestito assegna dinamicamente le connessioni server alle richieste in entrata, se possibile. Ciò comporta miglioramenti significativi delle prestazioni, soprattutto per le connessioni scalate, assorbendo i picchi improvvisi di connessione e riutilizzando le connessioni al database esistenti. Anziché connettersi a un database specifico, il pool di connessioni gestito si connette a un cluster di pooler, che forniscono 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 di connessioni gestito per qualsiasi carico di lavoro transazionale, il pooling di connessioni gestito offre il massimo vantaggio in termini di velocità effettiva e latenza con le applicazioni che contengono connessioni di breve durata o che comportano un aumento improvviso delle connessioni.
Per le connessioni a lunga durata, le prestazioni della connessione che utilizza il pool di connessioni gestito possono essere leggermente inferiori rispetto a quelle che utilizzano una connessione diretta. In questo caso, il pool di connessioni gestito fornisce lo scaling delle connessioni quando il numero di connessioni è molto elevato. Tuttavia, per le applicazioni che in genere stabiliscono connessioni di lunga durata, potresti utilizzare connessioni dirette alla tua istanza.
Per ulteriori informazioni su come attivare il pool di connessioni gestito, vedi Configurare il pool di connessioni gestito.
Requisiti
Per utilizzare il pool di connessioni gestito, l'istanza deve soddisfare i seguenti requisiti:
- L'istanza deve essere un'istanza Cloud SQL Enterprise Plus.
- Devi essere connesso all'istanza utilizzando una connessione diretta o solo il proxy di autenticazione Cloud SQL.
- Devi essere connesso alla tua istanza utilizzando un nome utente e una password validi. Gli utenti IAM e IAM group non sono supportati quando si utilizza il pool di connessioni gestito.
- L'istanza deve essere configurata per l'accesso privato ai servizi, 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 pool di connessioni gestito richiede un numero di versione di manutenzione
minimo di
POSTGRES_$version.R20250302.00_04
. Per ulteriori informazioni, vedi Manutenzione self-service.
Porte utilizzate dal pool di connessioni gestito per le istanze Cloud SQL
Quando abiliti il pool di connessioni gestito, le porte utilizzate dalle istanze Cloud SQL per gestire il traffico del database cambiano. Le porte utilizzate dal pool di connessioni gestito sono le seguenti:
- Porta TCP 5432: utilizzata per le connessioni dirette dal server di database Postgres. Questo è il numero di porta predefinito utilizzato per la connessione diretta tramite il client psql.
- Porta TCP 6432: utilizzata per le connessioni dirette dal server PgBouncer. Per connetterti utilizzando questa porta, specifica
psql -p 6432
quando ti connetti direttamente utilizzando il client psql. - Porta TCP 3307: utilizzata per le connessioni solo del proxy di autenticazione Cloud SQL da un server PgBouncer. Quando utilizzi il proxy di autenticazione Cloud SQL per connetterti a Pgbouncer, questo numero di porta viene configurato con il client proxy di autenticazione Cloud SQL e non può essere modificato.
Opzioni di configurazione disponibili
Il pool di connessioni gestito offre le seguenti opzioni di pooling che puoi impostare utilizzando il parametropool_mode
:
transaction
(predefinito): raggruppa le connessioni a livello di transazione.session
: raggruppa le connessioni a livello di sessione.
Puoi anche personalizzare il pool di connessioni gestito 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 soglia del pool di connessioni. Se il numero di connessioni server è inferiore amin_pool_size
, aggiungi altre connessioni server al pool. Il valore predefinito è 0 connessioni.max_client_connections
: il numero massimo di connessioni consentite per l'istanza. Il valore predefinito è 5000 connessioni.client_connection_idle_timeout
: il tempo in cui 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 in cui una connessione server rimane inattiva prima di scadere. 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 denominate a livello di protocollo supportati nella modalità di pooling delle transazioni. Il valore predefinito è 0.ignore_startup_parameters
: i parametri che vuoi ignorare e che non vengono monitorati nei pacchetti di avvio del pool di connessioni gestito per impostazione predefinita.server_lifetime
: il tempo massimo durante il quale una connessione server non viene utilizzata 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 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 abilitare, disabilitare o configurare
il pool di connessioni gestito, l'API
instance.update
non può contenere altri aggiornamenti della configurazione dell'istanza. - Il pool di connessioni gestito può essere utilizzato solo con il proxy di autenticazione Cloud SQL versione 2.15.2 e successive.
- Se utilizzi il connettore del linguaggio Go di Cloud SQL, ti consigliamo
una versione minima di Go
1.24
. Se utilizzi Go versione 1.23 o precedenti, 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 avviso a livello di sessione
Se utilizzi Cloud SQL per PostgreSQL versione 17, l'opzione
sslnegotiation=direct
non è supportata.