Cette page décrit ce qu'est le pooling de connexions géré et comment l'utiliser avec vos instances Cloud SQL.
Le pooling de connexions géré vous permet de faire évoluer vos charges de travail en optimisant l'utilisation des ressources et la latence de connexion pour vos instances Cloud SQL pour PostgreSQL à l'aide du pooling. Le regroupement de connexions géré attribue dynamiquement des connexions de serveur aux requêtes entrantes lorsque cela est possible. Cela permet d'améliorer considérablement les performances, en particulier pour les connexions à grande échelle, en absorbant les pics de connexion soudains et en réutilisant les connexions de base de données existantes. Au lieu de se connecter à une base de données spécifique, le regroupement de connexions géré se connecte à un cluster de poolers, ce qui permet de réduire les temps de connexion et d'améliorer l'évolutivité de vos charges de travail. Le nombre de poolers utilisés dépend du nombre de cœurs de processeur virtuel de votre instance.
Bien que vous puissiez utiliser le regroupement de connexions géré pour toutes les charges de travail transactionnelles, il offre le meilleur débit et la meilleure latence avec les applications qui contiennent des connexions de courte durée ou qui entraînent un pic de connexions.
Pour les connexions de longue durée, les performances de connexion à l'aide du pooling de connexions géré peuvent être légèrement inférieures à celles d'une connexion directe. Dans ce cas, le regroupement de connexions géré permet de mettre à l'échelle les connexions lorsque leur nombre est très élevé. Toutefois, pour les applications qui établissent généralement des connexions à longue durée de vie, vous pouvez utiliser des connexions directes à votre instance.
Pour savoir comment activer le pooling de connexions géré, consultez Configurer le pooling de connexions géré.
Conditions requises
Pour utiliser le pooling de connexions géré, votre instance doit répondre aux exigences suivantes :
- Votre instance doit être une instance Cloud SQL Enterprise Plus.
- Vous devez être connecté à votre instance à l'aide d'une connexion directe ou du proxy d'authentification Cloud SQL uniquement.
- Vous devez être connecté à votre instance à l'aide d'un nom d'utilisateur et d'un mot de passe valides. Les utilisateurs IAM et les groupes IAM ne sont pas compatibles avec le regroupement de connexions géré.
- Votre instance doit être configurée pour l'accès aux services privés, utiliser une adresse IP publique ou être une nouvelle instance pour laquelle Private Service Connect est activé.
- Votre instance doit utiliser la nouvelle architecture réseau Cloud SQL.
- Le regroupement de connexions géré nécessite une version de maintenance minimale de
POSTGRES_$version.R20250302.00_04
. Pour en savoir plus, consultez Effectuer une maintenance en libre-service.
Ports utilisés par le pool de connexions géré pour les instances Cloud SQL
Lorsque vous activez le pooling de connexions géré, les ports utilisés par les instances Cloud SQL pour diffuser le trafic de base de données changent. Voici les ports utilisés par le pool de connexions géré :
- Port TCP 5432 : utilisé pour les connexions directes par le serveur de base de données Postgres. Il s'agit du numéro de port par défaut utilisé lors d'une connexion directe à l'aide du client psql.
- Port TCP 6432 : utilisé pour les connexions directes par le serveur PgBouncer. Pour vous connecter à l'aide de ce port, spécifiez
psql -p 6432
lorsque vous vous connectez directement à l'aide du client psql. - Port TCP 3307 : utilisé pour les connexions du proxy d'authentification Cloud SQL uniquement par un serveur PgBouncer. Lorsque vous utilisez le proxy d'authentification Cloud SQL pour vous connecter à Pgbouncer, ce numéro de port est configuré avec le client du proxy d'authentification Cloud SQL et ne peut pas être modifié.
Options de configuration disponibles
Le regroupement de connexions géré propose les options de regroupement suivantes que vous pouvez définir à l'aide du paramètrepool_mode
:
transaction
(par défaut) : regroupe les connexions au niveau d'une transaction.session
: regroupe les connexions au niveau de la session.
Vous pouvez également personnaliser le pool de connexions géré à l'aide des paramètres de configuration suivants :
max_pool_size
: taille maximale du pool de connexions. La valeur par défaut est de 50 connexions.min_pool_size
: taille seuil du pool de connexions. Si le nombre de connexions au serveur est inférieur àmin_pool_size
, ajoutez-en au pool. La valeur par défaut est de 0 connexion.max_client_connections
: nombre maximal de connexions autorisées pour votre instance. La valeur par défaut est de 5 000 connexions.client_connection_idle_timeout
: durée d'inactivité d'une connexion client avant son expiration. Cette valeur peut être comprise entre 0 et 2 147 483 secondes. La valeur par défaut est de 0 seconde.server_connection_idle_timeout
: durée pendant laquelle une connexion au serveur reste inactive avant d'expirer. Cette valeur peut être comprise entre 0 et 2 147 483 secondes. La valeur par défaut est de 600 secondes.query_wait_timeout
: délai d'attente d'une requête avant expiration. Cette valeur peut être comprise entre 0 et 2 147 483 secondes. La valeur par défaut est de 120 secondes.max_prepared_statements
: nombre maximal de commandes d'instructions préparées nommées au niveau du protocole compatibles avec le mode de mise en pool des transactions. La valeur par défaut est 0.ignore_startup_parameters
: paramètres que vous souhaitez ignorer et qui ne sont pas suivis par défaut dans les paquets de démarrage du pool de connexions géré.server_lifetime
: durée maximale pendant laquelle une connexion au serveur est inutilisée avant que le regroupement de connexions géré ne la ferme. La valeur par défaut est de 3 600 secondes.
Limites
Tenez compte des limites suivantes lorsque vous utilisez le pooling de connexions géré avec vos instances Cloud SQL Enterprise Plus :
- L'activation du pooling de connexions géré sur une instance existante entraîne le redémarrage de la base de données.
- Lorsque vous utilisez l'API Cloud SQL pour activer, désactiver ou configurer le pooling de connexions géré, l'API
instance.update
ne peut pas contenir d'autres mises à jour de la configuration de l'instance. - Le pooling de connexions géré ne peut être utilisé qu'avec le proxy d'authentification Cloud SQL version 2.15.2 et ultérieures.
- Si vous utilisez le connecteur de langage Go Cloud SQL, nous vous recommandons d'utiliser au minimum la version
1.24
de Go. Si vous utilisez Go version 1.23 ou antérieure, vous pouvez rencontrer des limitations de performances lorsque vous utilisez le pool de connexions géré. Si vous utilisez le pooling de connexions géré en mode pooling
transaction
, les fonctionnalités SQL suivantes ne sont pas compatibles :SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
- Tables temporaires
PRESERVE/DELETE ROW
LOAD
- Verrous consultatifs au niveau de la session
Si vous utilisez la version 17 de Cloud SQL pour PostgreSQL, l'option
sslnegotiation=direct
n'est pas compatible.