Panoramica del pool di connessioni gestito

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 limite max_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.

Passaggi successivi