PostgreSQL

Connection limit exhaustion causes memory pressure and context-switching overhead

critical
Connection ManagementUpdated Feb 7, 2026
Technologies:
How to detect:

Each PostgreSQL connection consumes 5-10MB RAM via fork model. At 200 connections: 1-2GB RAM overhead before queries run. At 500+ connections: excessive context-switching dominates query execution time. Database becomes unresponsive under concurrent load.

Recommended action:

Deploy PgBouncer connection pooler between application and PostgreSQL. Configure transaction-mode pooling with default_pool_size=20 actual database connections, max_client_conn=1000 application connections. Monitor active connections vs max_connections — alert at 80% utilization. Configure query_timeout=30s to prevent connection starvation.