I am looking for guidance on determining an appropriate value for the max_locks_per_transaction parameter in our PostgreSQL 17.6 production environment.
Environment has the following characteristics:
PostgreSQL Version: 17.6
max_connections = 1500
That's HIGH. If you have that many concurrent connections, then you really need a connection pooler.
Is there a recommended methodology or formula for estimating max_locks_per_transaction.
Our objective is to determine an appropriate value based on workload characteristics rather than increasing the parameter through trial and error.
The memory structures handling locks per transaction are really light. I set the value to 15000 (where average connection count is around 30) and then worry about something else.