Il pool di connessioni gestite ti consente di scalare i workload ottimizzando l'utilizzo delle risorse e la latenza di connessione per le tue istanze Cloud SQL. Il pool di connessioni gestito crea un pool di thread per gestire le richieste in entrata. In questo modo si ottengono miglioramenti significativi delle prestazioni, soprattutto per le connessioni scalate, assorbendo picchi di connessione improvvisi senza sovraccaricare il server con un aumento del numero di thread.
Per saperne di più sull'abilitazione del pool di connessioni gestito, consulta Configura il pool di connessioni gestito.
Requisiti
Per utilizzare il pool di connessioni gestite, l'istanza deve soddisfare i seguenti requisiti:
- L'istanza deve essere un'istanza Cloud SQL Enterprise Plus.
- Il pool di connessioni gestito richiede un numero di versione di manutenzione minimo di
MYSQL_$version.R20250531.01_10. Per saperne di più sull'esecuzione della manutenzione self-service, consulta Esegui la manutenzione self-service.
Opzioni di configurazione avanzate
Puoi personalizzare il pool di connessioni gestite modificando l'opzione di configurazione max_pool_size.
L'opzione max_pool_size controlla il livello di contemporaneità per il pool di connessioni gestito.
Il valore predefinito dipende dal numero di core vCPU nella configurazione della macchina dell'istanza.
Limitazioni
Quando utilizzi il pool di connessioni gestite con le istanze Cloud SQL Enterprise Plus, tieni presente queste limitazioni:
- L'abilitazione del pool di connessioni gestito su un'istanza esistente comporta il riavvio del database.
- Quando il pool di connessioni gestito è abilitato per l'istanza, il valore della metrica
thread_cache_sizeè impostato su 0 per impostazione predefinita.
Pool di thread e multiplexing delle connessioni
In Cloud SQL per MySQL, il pool di connessioni gestite utilizza un pool di thread lato server anziché un multiplexer di connessione esterno:
- Thread pooling (Managed Connection Pooling): i client si connettono direttamente al server di database, che riutilizza un pool limitato di thread di lavoro (
max_pool_size) per eseguire query su sessioni attive anziché creare un thread dedicato per connessione. In questo modo, l'overhead della CPU e della memoria viene ridotto in caso di elevata concorrenza, ma ogni connessione client aperta mantiene comunque una sessione server dedicata e viene conteggiata ai fini del limitemax_connections. - Multiplexing delle connessioni (ad esempio ProxySQL): i client si connettono tramite un proxy intermedio che condivide un pool più piccolo di connessioni al database di backend tra molte connessioni client. In questo modo, il numero totale di connessioni lato server aperte viene ridotto direttamente.
Se il tuo workload richiede la riduzione del numero di connessioni lato server per evitare di raggiungere il limite di max_connections, utilizza un pooler di connessioni esterno come ProxySQL. In alternativa, puoi aumentare il flag max_connections in base alla capacità di memoria dell'istanza.