TL;DR — Résumé Rapide
Configurez PgBouncer pour le pool de connexions PostgreSQL afin de gérer un trafic élevé, prévenir l'épuisement de la mémoire et optimiser les performances.
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.