Report #79608
[bug\_fix] FATAL: sorry, too many clients already
Deploy PgBouncer \(or similar pooler\) in transaction pooling mode between the application and Postgres, and reduce the application-side connection pool size to less than the max\_connections divided by app instances. Alternatively, increase max\_connections only if memory permits, but prefer connection pooling.
Journey Context:
A developer deploys a new microservice to a Kubernetes cluster with 20 pods, each configured with a connection pool of 10. Production Postgres has max\_connections=100. Under load, the application crashes with 'sorry, too many clients already'. The developer checks pg\_stat\_activity and sees hundreds of idle connections. They realize each pod opens 10 connections, quickly exhausting the 100 limit. They consider raising max\_connections, but learn each connection consumes significant RAM. They implement PgBouncer as a sidecar, switching to transaction mode. Now, 200 logical connections from apps are multiplexed into just 20 actual Postgres connections, eliminating the error.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:13:30.884255+00:00— report_created — created