DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Optimisation du Pooling de Connexions avec PgBouncer

Optimisation du Pooling de Connexions avec PgBouncer

La majorité des applications web utilisent des bases de données pour stocker leurs données. Les applications clientes peuvent récupérer les informations de la base de données en établissant une connexion avec celle-ci. Chaque requête consomme des ressources telles que la mémoire, l’allocation de port et le temps CPU. Une transaction peut prendre des millisecondes, mais établir une connexion peut prendre jusqu’à plusieurs secondes.

Pour simplifier le processus de connexion à PostgreSQL, surtout lorsque l’on s’attend à un volume élevé de connexions clients, vous pouvez utiliser PgBouncer pour gérer efficacement les connexions client-base de données. Il s’agit d’un pooler de connexions populaire qui se connecte une fois à la base de données et utilise cette connexion plusieurs fois pour des clients différents. Ce n’est pas le seul avantage de l’utilisation de PgBouncer.

Disons que vous avez 100 clients qui doivent se connecter à votre base de données et que vous ne voulez pas partager le mot de passe de l’utilisateur de la base de données parmi ces clients. Dans ce cas, vous pouvez utiliser PgBouncer. Vous pouvez définir des identifiants individuels et des mots de passe pour la connexion de sorte que PgBouncer et les clients n’utiliseront pas les mots de passe des utilisateurs de la base de données. De plus, vous pouvez assigner un nom d’alias pour la base de données, de sorte que les clients ne verront pas le vrai nom de la base de données.

Au lieu de créer une connexion à la base de données, une connexion avec PgBouncer est créée qui utilise déjà des connexions existantes de la base de données.

DataSunrise Database Security Suite, en plus de nombreuses autres fonctionnalités, prend en charge le pooling avec PgBouncer. Travaillant efficacement avec la cartographie clients-base de données, il maintient une sécurité complète de la base de données lorsque PgBouncer est en cours d’exécution.

Avantages de l’utilisation des pools de connexions PgBouncer :

  • réduction du temps de traitement
  • réduction de la consommation des ressources du serveur pour le maintien d’un grand nombre de connexions de serveur vers une ou plusieurs bases de données
  • prise en charge du redémarrage ou de la mise à niveau en ligne sans interruption des connexions clients
  • masquage du vrai nom de la base de données
  • possibilité d’éviter de partager un mot de passe d’utilisateur de base de données avec toutes les applications clientes

Configuration de PgBouncer

Après l’installation, PgBouncer fonctionne comme un service sur Windows et comme un démon sur Linux (nommé pgbouncer dans les deux cas).

Pour modifier les paramètres de configuration, trouvez le fichier pgbouncer.ini dans le répertoire suivant : pgbouncer/share. Il contient les paramètres suivants:

[database] sectionVous pouvez ajouter des bases de données, définir leurs hôtes, ports, assigner des noms d’alias pour les bases de données et spécifier un identifiant et un mot de passe pour l’utilisateur de la base de données (tous les clients connectés au nom d’alias spécifié via PgBouncer utiliseront l’identifiant et le mot de passe de l’utilisateur de la base de données spécifiés dans cette section).
[pgbouncer] sectionSpécifiez les adresses IP qui seront écoutées par le démon PgBouncer. Utilisez Listen_addr = * pour écouter toutes les adresses disponibles.
auth_filePgBouncer ne fait pas partie de PostgreSQL, vous devez donc fournir la liste des utilisateurs avec des mots de passe chiffrés nécessaires pour se connecter à PgBouncer. Auth_file est un chemin de répertoire vers le fichier contenant les noms d’utilisateurs et les mots de passe.
auth_type(md5 | crypt | plain | trust | any) Md5 est un argument pour utiliser les mots de passe spécifiés dans le auth_file. Md5 est défini par défaut.
max_client_connLe nombre maximum de clients qui peuvent se connecter au pool (100, par défaut).
admin_usersAttribution des privilèges avec accès à la console d’administration.
default_pool_sizeDéfinition du nombre maximum de connexions serveur par combinaison utilisateur/base de données.
reserve_pool_sizeLe nombre maximum de connexions supplémentaires autorisées en cas de problème.
pool_modeDéfinit le mode de pooling : (session) PgBouncer assigne une connexion serveur au client. Lorsque l’application cliente se déconnecte, la connexion est renvoyée dans le pool. (transaction) PgBouncer assigne une connexion serveur à l’application cliente jusqu’à ce que la transaction soit terminée. (statement) PgBouncer assigne une connexion serveur pour chaque instruction de l’application cliente.

Comme vous pouvez le voir, PgBouncer fournit une solution facile pour gérer les pools de connexions, surtout lorsqu’il s’agit d’une architecture multithread. En utilisant des connexions existantes, PgBouncer élimine la nécessité de créer une connexion à la base de données pour chaque client.

Nos développeurs ont minutieusement analysé les schémas de mapping de PgBouncer et ont configuré DataSunrise Database Security Suite pour fonctionner pleinement avec ce pooler de connexions.

Suivant

Assurez-vous une Sécurité des Bases de Données dans le Cloud

Assurez-vous une Sécurité des Bases de Données dans le Cloud

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]