DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Optimiser le Pooling de Connexions avec PgBouncer

Optimiser le 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 y établissant une connexion. Chaque requête consomme des ressources, y compris la mémoire, l’allocation de ports et le temps CPU. Une transaction peut prendre des millisecondes, mais établir une connexion peut prendre jusqu’à plusieurs secondes.

Afin de simplifier le processus de connexion à PostgreSQL, en particulier lorsque l’on prévoit un volume élevé de connexions clients, vous pouvez utiliser PgBouncer pour gérer efficacement les connexions client-base de données. C’est un gestionnaire de pool de connexions populaire qui se connecte une fois à la base de données et utilise cette connexion plusieurs fois pour différents clients. 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 et des mots de passe individuels pour se connecter de sorte que PgBouncer et les clients n’utilisent pas les mots de passe de l’utilisateur de la base de données. De plus, vous pouvez attribuer 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 en utilisant des connexions à la base de données déjà existantes.

DataSunrise Database Security Suite prend en charge le pooling avec PgBouncer parmi de nombreuses autres fonctionnalités. Travaillant efficacement avec la cartographie clients-bases de données, elle 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 de ressources serveur pour maintenir un grand nombre de connexions serveur à 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 le partage du mot de passe de l’utilisateur de la base de données avec toutes les applications clientes

Configuration de PgBouncer

Après l’installation, PgBouncer fonctionne comme un service sous Windows et comme un daemon sous 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, attribuer des noms d’alias pour les bases de données et spécifier un identifiant et un mot de passe pour un 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 daemon PgBouncer. Utilisez Listen_addr = * pour écouter toutes les adresses disponibles.
 auth_filePgBouncer n’est pas une partie de PostgreSQL, vous devez donc fournir la liste des utilisateurs avec des mots de passe cryptés nécessaires pour se connecter à PgBouncer.  Auth_file est un chemin d’accès au fichier contenant les noms d’utilisateur 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 pouvant se connecter au pool (100, par défaut).
 admin_usersAttribution des privilèges avec accès à la console d’administration.
 default_pool_size Attribution du nombre maximal de connexions serveur par combinaison utilisateur/base de données.
 reserve_pool_sizeLe nombre maximal de connexions supplémentaires autorisées en cas de problème.
 pool_modeDéfinit le mode de pooling : (session) PgBouncer attribue une connexion serveur au client. Lorsque l’application cliente se déconnecte, la connexion est remise dans le pool. (transaction) PgBouncer attribue une connexion serveur à l’application cliente jusqu’à la fin de la transaction. (statement) PgBouncer attribue une connexion serveur pour chaque instruction de l’application cliente.

Comme vous pouvez le voir, PgBouncer offre une solution simple pour gérer les pools de connexions, en particulier 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 soigneusement analysé les schémas de mapping de PgBouncer et configuré DataSunrise Database Security Suite pour pouvoir fonctionner pleinement avec ce gestionnaire de pool 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]