Guidance on Calculating max_locks_per_transaction for a Highly Partitioned Environment - Mailing list pgsql-general

From Vivek Gadge
Subject Guidance on Calculating max_locks_per_transaction for a Highly Partitioned Environment
Date
Msg-id CAK+uD7g=EE4ypAsuF8L9ZQ3FSuRD-YJ8nOkkyDnSooA_jidycQ@mail.gmail.com
Whole thread
Responses Re: Guidance on Calculating max_locks_per_transaction for a Highly Partitioned Environment
List pgsql-general
Hello Team,

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
    Daily partitioning strategy
    Large OLTP workload with transactions that may access multiple partitions 

Occasionally, we encounter the following error:

ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.

We understand that the shared lock table is sized based on max_locks_per_transaction, max_connections, and max_prepared_transactions. However, we have not found any guidance on how to estimate an appropriate value for environments with a large number of partitions and indexes.

We would appreciate guidance on the following:

    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.

Thanks 

Vivek Gadge.

pgsql-general by date:

Previous
From: Israel Brewster
Date:
Subject: Re: PostgreSQL 15-->18 slowdown?
Next
From: sa sa
Date:
Subject: Postgresql Wal archive and Barman setup