How to monitor locks (max_pred_locks_per_transaction)? - Mailing list pgsql-general

From Andrey Lizenko
Subject How to monitor locks (max_pred_locks_per_transaction)?
Date
Msg-id CADKuZZA7fmgs==ejwJrDvB2vZb5PUt2sWnOZKgiA0JMotqYSnw@mail.gmail.com
Whole thread Raw
Responses Re: How to monitor locks (max_pred_locks_per_transaction)?
List pgsql-general
Hi, 
I've got

 2014-12-28 14:33:23 GMT 553582643 24969 SELECT 53200 63/8298433 54a00a84.6189 1 %ERROR:  out of shared memory
 2014-12-28 14:33:23 GMT 553582643 24969 SELECT 53200 63/8298433 54a00a84.6189 2 %HINT:  You might need to increase max_pred_locks_per_transaction.

Is there any way to predict such OOM situation (to adjust max_pred_locks_per_transaction before some transaction fails)? 
As far as we have a lot of transaction in SERIALIZABLE isolation level, should it be some counts of pg_locks with mode = AccessExclusiveLock or something like that?

Documentation says, that it is an average value, and every single transaction could lock more objects:

 objects (e.g., tables); hence, no more than this many distinct objects can be locked at any one time. This parameter controls the average number of object locks allocated for each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table.
 
how can I get number of 'distinct objects' mentioned here?

WBR, Andrey Lizenko

pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: Advice for using integer arrays?
Next
From: Tim Smith
Date:
Subject: Re: Correct/optimal DML query for application session management ?