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 = transactionpour les applications web.