Le Problème de Connexion PostgreSQL

PostgreSQL crée un nouveau processus par connexion, consommant mémoire et CPU. PgBouncer est un pooler léger qui s’intercale entre l’application et la base.

Prérequis

  • Serveur Linux avec PostgreSQL (12+).
  • Accès root ou sudo.

Configuration Étape par Étape

1. Installer PgBouncer

sudo apt update && sudo apt install pgbouncer

2. Configurer l’Authentification

sudo -u postgres psql -Atq -c "SELECT concat('\"', usename, '\" \"', passwd, '\"') FROM pg_shadow;" > /tmp/userlist.txt
sudo mv /tmp/userlist.txt /etc/pgbouncer/userlist.txt
sudo chown postgres:postgres /etc/pgbouncer/userlist.txt
sudo chmod 600 /etc/pgbouncer/userlist.txt

3. Configurer pgbouncer.ini

[databases]
mabase = host=127.0.0.1 port=5432 dbname=mabase

[pgbouncer]
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
pool_mode = transaction
default_pool_size = 20
max_client_conn = 2000

4. Connecter l’Application

Changez le port de 5432 à 6432.


Résumé

  • Utilisez PgBouncer pour prévenir l’épuisement de la mémoire.
  • Définissez pool_mode = transaction pour les applications web.

Articles Connexes