24

As per https://devcenter.heroku.com/articles/heroku-postgres-legacy-plans the connection limit is 500

As per https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server "Generally, PostgreSQL on good hardware can support a few hundred connections"

What are the determining factors in this limit? #CPU cores? RAM? OS?

1 Answer 1

25

First of all, the GUC¹ setting max_connections in postgresql.conf limits connections. It can only be set at server start.

Heroku obviously limits this to 20 for the "Starter Tier" and 500 for the "Production Tier".

The maximum number is not limited by Postgres itself, but by available system resources. Typically, performance degrades with too many concurrent connections, so even if you can set max_connections = 1000, it's probably unwise. Idle sessions don't matter much. But concurrently active sessions compete for resources, the bottleneck typically being I/O.

Here is a blog with instructions by someone who did.

¹ Grand Unified Configuration, the PostgreSQL subsystem that handles server configuration

3
  • 1
    Thanks Erwin. So which system resources are limiting? Sounds like #cores and spindles. Is a particular OS better than others? Mar 19, 2015 at 23:30
  • @NeilMcGuigan: Follow the link, the blog entry has a list. Mar 19, 2015 at 23:32
  • 1
    @MartinThoma: I added explanation. Sep 19, 2021 at 22:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.