Présentation du pool de connexions géré

Le regroupement de connexions géré vous permet de faire évoluer vos charges de travail en optimisant l'utilisation des ressources et la latence des connexions pour vos instances Cloud SQL. Le regroupement de connexions géré attribue dynamiquement des connexions serveur aux requêtes entrantes lorsque cela est possible. Cette attribution dynamique améliore les performances, en particulier pour les connexions mises à l'échelle, en absorbant les pics de connexion soudains et en réutilisant les connexions de base de données existantes.

Le regroupement de connexions géré se connecte à un cluster de poolers plutôt qu'à une base de données spécifique. Le pooler gère ensuite les connexions entrantes à la base de données. Cela permet de réduire les temps de connexion et d'améliorer l'évolutivité de vos charges de travail. Chaque pool est associé à une base de données et à un utilisateur uniques. Une fois qu'un client s'est authentifié, le pool réutilise une connexion serveur inactive dans le pool pour connecter la base de données au serveur. Si aucune connexion serveur n'est disponible, il en crée une dans le pool pour connecter la base de données. Le nombre de poolers utilisés dépend du nombre de cœurs de processeur virtuel de votre instance.

Cas d'utilisation et points à prendre en compte

Tenez compte des points suivants lorsque vous utilisez le regroupement de connexions géré :

  • Bien que vous puissiez utiliser le regroupement de connexions géré pour n'importe quelle charge de travail transactionnelle, il offre le meilleur débit et la meilleure latence aux applications qui contiennent des connexions de courte durée ou qui entraînent une augmentation soudaine du nombre de connexions.
  • Pour les connexions de longue durée, les performances de connexion à l'aide du regroupement 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 de longue durée, vous pouvez éviter d'utiliser le regroupement de connexions.
  • Vous pouvez utiliser Identity and Access Management pour sécuriser les connexions à votre instance en fonction de le port utilisé par le regroupement de connexions géré. Pour en savoir plus sur le fonctionnement d'IAM dans Cloud SQL et ses limites, consultez la page Authentification IAM.

Pour en savoir plus sur l'activation du regroupement de connexions géré, consultez la page Configurer le regroupement de connexions géré.

Conditions requises

Pour utiliser le regroupement de connexions géré, votre instance doit répondre aux exigences suivantes :

  • Votre instance doit être une instance Cloud SQL Enterprise Plus.
  • Vous ne devez être connecté à votre instance qu'à l'aide d'une connexion directe ou du proxy d'authentification Cloud SQL.
  • 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 un numéro de version de maintenance minimal de POSTGRES_$version.R20250727.00_14. Pour en savoir plus sur la maintenance en libre-service, consultez la page Effectuer une maintenance en libre-service.

Options de regroupement

Le regroupement de connexions géré vous permet de gérer le regroupement des connexions à l'aide du paramètre pool_mode. Vous pouvez utiliser les options de regroupement suivantes :

  • transaction (par défaut) : regroupe les connexions au niveau d'une transaction. Les connexions sont renvoyées au pool une fois chaque transaction terminée. Cloud SQL recommande d'utiliser le mode de regroupement transaction pour les connexions de courte durée.
  • session : regroupe les connexions au niveau d'une session. Chaque session utilise une connexion serveur dédiée qui conserve un état de session. Cela réduit l'efficacité du regroupement. Lorsqu'un client se déconnecte, la connexion serveur revient au pool de connexions.

Options de configuration avancées

Vous pouvez personnaliser le regroupement de connexions géré à l'aide des options de configuration suivantes :

Nom de la configuration Description
max_pool_size Nombre maximal de connexions serveur autorisées pour une paire base de données/utilisateur dans chaque pool de connexions. La valeur par défaut est de 50 connexions.
min_pool_size Nombre minimal de connexions serveur disponibles à tout moment dans chaque pool de connexions.

Si le nombre de connexions serveur est inférieur à min_pool_size, ce paramètre ajoute d’autres connexions serveur au pool. Cela permet de gérer les augmentations soudaines de la charge de la base de données après des périodes d'inactivité et de s'assurer que les connexions sont disponibles et prêtes à être utilisées.

La valeur par défaut est de 0 connexion.
max_client_connections Nombre maximal de connexions autorisées pour votre instance lorsque vous utilisez le regroupement de connexions géré. La valeur par défaut est de 5 000 connexions.
max_prepared_statements Nombre maximal d'instructions préparées nommées au niveau du protocole compatibles avec le mode de regroupement transaction.

Définir cette option sur 0 désactive la prise en charge des instructions préparées. Pour des performances optimales, cette valeur doit être supérieure au nombre d'instructions préparées communément utilisées dans votre base de données. Un nombre élevé d'instructions préparées dans le regroupement de connexions géré peut entraîner une augmentation de l'utilisation de la mémoire.

La valeur par défaut est de 0 instruction.
client_connection_idle_timeout Durée pendant laquelle une connexion client reste inactive avant d'expirer. Cette valeur peut être comprise entre 0 et 2 147 483 secondes, et la valeur par défaut est de 0 seconde.
server_connection_idle_timeout Durée pendant laquelle une connexion serveur reste inactive avant d'expirer. Cette valeur peut être comprise entre 0 et 2 147 483 secondes, et la valeur par défaut est de 600 secondes.
query_wait_timeout Durée pendant laquelle une requête attend une connexion serveur dans un pool avant d'expirer.

Définir cette option sur 0 la désactive, ce qui permet une mise en file d'attente client indéfinie. L'activation de cette option empêche les serveurs qui ne répondent pas de bloquer les connexions.

Cette valeur peut être comprise entre 0 et 2 147 483 secondes, et la valeur par défaut est de 120 secondes.
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 regroupement de connexions géré.
server_lifetime Durée maximale pendant laquelle une connexion serveur est inutilisée avant que le regroupement de connexions géré ne la ferme. Si la valeur est définie sur 0 seconde, la connexion est immédiatement fermée après utilisation.

La valeur par défaut est de 3 600 secondes.

Limites

Lorsque vous utilisez le regroupement de connexions géré avec vos instances Cloud SQL Enterprise Plus, tenez compte des limites suivantes :

  • L'activation du regroupement de connexions géré sur une instance existante entraîne le redémarrage de la base de données.
  • Le regroupement 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 une version Go minimale de 1.24. Si vous utilisez la version 1.23 ou une version antérieure de Go, vous risquez de rencontrer des limites de performances lorsque vous utilisez le regroupement de connexions géré.
  • Si vous utilisez le regroupement de connexions géré en mode de regroupement 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 bibliothèque d'interface de base de données asyncpg pour le pooler de regroupement de connexions géré sur les ports 3307 et 6432, vous devez définir max_prepared_statements sur une valeur supérieure à 0 pour activer la prise en charge des instructions préparées dans le pooler de regroupement de connexions géré.

  • Si vous utilisez Cloud SQL pour PostgreSQL version 17, l'option sslnegotiation=direct n'est pas compatible.

  • Le suivi des adresses IP des clients n'est pas compatible avec le regroupement de connexions géré. Si vous activez Stocker les adresses IP des clients dans les insights sur les requêtes, les adresses IP des clients s'affichent sous la forme local au lieu de l'adresse IP elle-même.

Ports utilisés par le regroupement de connexions géré

Lorsque vous activez le regroupement de connexions géré, les ports utilisés par les instances Cloud SQL pour diffuser le trafic de la base de données changent. Vous pouvez utiliser Identity and Access Management pour sécuriser les connexions en fonction du port.

Les ports utilisés par le regroupement de connexions géré et leurs options IAM disponibles sont les suivants :

Connexions serveur utilisées par le regroupement de connexions géré

La configuration de base de données max_connections limite le nombre maximal de connexions serveur qu'un pooler peut utiliser dans le regroupement de connexions géré. Cloud SQL recommande d'ajuster cette valeur en fonction des exigences de charge de travail de votre instance et de la taille de l'instance de base de données. En cas de pic de charge, le nombre de connexions pour l'authentification peut devenir très élevé.

Si vous utilisez la valeur par défaut max_pool_size de 50 pools sur votre instance, nous vous recommandons de réserver au moins 15 connexions serveur par processeur pour le regroupement de connexions géré lorsque vous définissez l'option max_connections pour votre base de données. Pour en savoir plus sur l'option max_connections, consultez la page Nombre maximal de connexions simultanées. Pour modifier l'option max_connections de votre instance, consultez la page Configurer des options de base de données.

Étape suivante