From: | Andrey Lizenko <lizenko79(at)gmail(dot)com> |
---|---|
To: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to monitor locks (max_pred_locks_per_transaction)? |
Date: | 2015-01-08 18:28:55 |
Message-ID: | CADKuZZCgfVoRJ1UgUkiLNjfOh54-Hq5kkrAsiTBZPKz+pvYwjQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Thanks for your detailed explanation, Kevin. I will check my system again
keeping SIReadLock in mind.
By the way, does max_locks_per_transaction limit all others modes of locks
by the same way?
On 7 January 2015 at 00:34, Kevin Grittner <kgrittn(at)ymail(dot)com> wrote:
> Andrey Lizenko <lizenko79(at)gmail(dot)com> wrote:
>
> >> 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?
>
> WHERE mode = 'SIReadLock'
>
> > how can I get number of 'distinct objects' mentioned here?
>
> The total 'SIReadLock' count must be less than
> max_pred_locks_per_transaction * max_connections.
>
> The default is small so that minimal space is reserved for those
> not using serializable transactions. Many people have found that
> they need to set it to 10 to 20 times the default values.
>
> Due to the heuristics of how multiple fine-grained locks are
> combined into coarser-grained locks it might sometimes be necessary
> (if you have a lot of page locks in a lot of tables) to raise
> max_connections beyond what you need for actual connections. I
> have not actually seen this yet, but it could happen. If it does,
> please share details of the workload and your settings, so that we
> can look at possible adjustments to the lock granularity promotion
> logic or the memory allocation techniques.
>
> Please note the suggestions on performance in the documentation of
> serializable transactions. In particular, if a transaction will
> not be modifying data, setting it to READ ONLY can help a lot. Not
> only will it help performance, but it will tend to reduce the
> number of predicate locks needed.
>
> --
> Kevin Grittner
> EDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
--
Regards, Andrey Lizenko
From | Date | Subject | |
---|---|---|---|
Next Message | Jimmy Jack | 2015-01-09 01:10:33 | GCC error while trying to install 9.4 via brew on MAC OS |
Previous Message | Beena Emerson | 2015-01-08 16:53:30 | Re: Inconsistent bgworker behaviour |