Subject: Getting error "too many clients already" despite having a db connection limit set

From: adolfo flores <[email-masked]>
Date: Mon, 16 Jun 2025 10:29:28 -0600

Hello Team,

I hope you can help me with an issue we're experiencing. We have an app
running on Kubernetes that opens a huge number of connections within a
couple of seconds.

The database that the app connects to, is configured with a connection
limit of 30% of the max_connections setting. Despite this limit being set
for that database, we're seeing the following errors in the PostgreSQL logs:

FATAL:  sorry, too many clients already
FATAL:  remaining connection slots are reserved for roles with the
SUPERUSER attribute

Is it expected behavior to reach the max_connections limit when that app
opens many connections in a short period of time, even if a connection
limit is set for that database and everything else uses no more than 10% of
the max_connections?

Or any idea on what could be happening?

Regards.

Adolfo F.

---

From: Tom Lane <[email-masked]>
Date: Mon, 16 Jun 2025 12:39:09 -0400

> running on Kubernetes that opens a huge number of connections within a

You need to fix that app to be less unfriendly, or maybe put it behind
a connection pooler.

> limit is set for that database and everything else uses no more than 10% of

It takes a finite amount of time for a new backend process to figure
out which database it's supposed to connect to and then detect whether
the per-DB connection limit is exceeded.  In the meantime, that
session does count against the global limit, so yeah this isn't
surprising if the connection arrival rate is high enough.

			regards, tom lane