1. Connexions & Sessions
Gestion des connexions PostgreSQL, sessions utilisateur, pooling, limites et tuning des ressources liées.
Objectif: 🎯 Objectif du composant
Limiter la surcharge serveur liée aux connexions concurrentes et optimiser la gestion des sessions PostgreSQL sans dégrader la réactivité.
Paramètres: ⚙️ Paramètres concernés
max_connections Limite globale de connexions superuser_reserved_connections Nombre réservé pour admin idle_in_transaction_session_timeout Timeout anti-zombie statement_timeout Limite de durée requête SQL tcp_keepalives_idle Détection d’inactivité TCP
Bonnes pratiques: ✅ Bonnes pratiques
- Utiliser PgBouncer ou Pgpool-II - Fixer des timeouts raisonnables - Adapter max_connections au profil - Monitorer régulièrement pg_stat_activity
Pièges à éviter: ⚠️ Pièges à éviter
- max_connections trop élevé sans ressources adéquates - Absence de pooler dans des applis web à fort trafic - Sessions inactives longues sans timeout
Recommandations: 👤 Recommandations par profil
OLTP : max 100–200, avec pooling Analytics : connexions limitées, durées longues Batch : max 10 connexions longues Dév : 20–50, pas plus
Exemples: 🧪 Exemples de réglage
ALTER SYSTEM SET max_connections = '200'; ALTER SYSTEM SET statement_timeout = '30s'; ALTER SYSTEM SET idle_in_transaction_session_timeout = '60s';
Commandes utiles: 🛠️ Commandes utiles
SHOW max_connections; SELECT * FROM pg_stat_activity; SELECT state, count(*) FROM pg_stat_activity GROUP BY 1;
Références: 🔗 Références officielles
- https://www.postgresql.org/docs/current/runtime-config-connection.html - https://www.pgbouncer.org/ - https://pgbouncer.github.io/config.html
