Skip to content

Instantly share code, notes, and snippets.

@guizmaii
Last active July 11, 2024 08:07
Show Gist options
  • Save guizmaii/1cacffef793c2ba9645083c3e18b3d8c to your computer and use it in GitHub Desktop.
Save guizmaii/1cacffef793c2ba9645083c3e18b3d8c to your computer and use it in GitHub Desktop.
AWS PostgreSQL max_connection per instance type

The default formula use by AWS RDS to calculate the max_connections parameter is: LEAST({DBInstanceClassMemory/9531392},5000)

But It's hard to find the exact value of DBInstanceClassMemory.

So, here are the values I got when I ran the SQL commmand: show max_connections; in some RDS instances:

Instance type RAM (GB) max_connections
db.t2.small 2 198
db.t2.medium 4 413
db.t2.large 8 856
db.m4.large 8 856
db.r4.large 15.25 1660

These are default values. You can always change the max_connections value in the parameters group of your DB.

@danielrangelsa
Copy link

danielrangelsa commented Apr 28, 2021

You can use the query below to collect the value that is the result of the equation LEAST({DBInstanceClassMemory/9531392},5000)

select * from pg_settings where name='max_connections';

max_connections is the result of an equation

In some cases, depending on the way your system was built, you may end up reaching 100% CPU usage before you even reach half of the possible connections.
keep your eyes open for this.

@stafot
Copy link

stafot commented Nov 11, 2021

Does this LEAST({DBInstanceClassMemory/9531392},5000) apply to graviton instances too. As it seems they support more max connections than the others based on https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Managing.html but doesn't have data for t4g family.

@ajhodgson
Copy link

Graviton - db.r6g.xlarge (32 GB) = 3484. Looks like the same formula.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment