Lists: | pgsql-admin |
---|
From: | "Milen A(dot) Radev" <milen(at)radev(dot)net> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Lock Statistics |
Date: | 2007-07-30 16:11:11 |
Message-ID: | 32c009ea0707300911h74f588f6se7d03f5f28d598e5@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
I have performance problems with a DB (slow queries) and I suspect the
main cause is that a lot of queries wait for a lock on one small
table. That's why I need some stats about the number and (average)
wait-time for locks (even only for this particular table).
After a bit of googling I found a project in PgFoundry with a
promising description - http://pgfoundry.org/projects/pglockdiag/.
Unfortunately the projects seems stillborn - no published files and
nothing in CVS.
--
Milen A. Radev
From: | adey <adey11(at)gmail(dot)com> |
---|---|
To: | "Milen A(dot) Radev" <milen(at)radev(dot)net> |
Cc: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Lock Statistics |
Date: | 2007-07-30 22:35:25 |
Message-ID: | 1c66bda80707301535s24e675f4i483b06f91351289e@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
Try this query for a start, and add system tables to the join to find what
you want:-
-- displays locks with database name and username, but not table
-- CAUTION: this query may impact system performance as you are selecting
from system tables
select
relation
, c.relname
, u.usename
, pid
, mode
, transaction
, granted
, datname
, u.usesysid
, usesuper
--*
from pg_locks l, pg_stat_activity s, pg_user u, pg_class c
where l.pid = s.procpid
and l.relation = c.relfilenode
and s.usesysid = u.usesysid
order by l.pid;
On 7/31/07, Milen A. Radev <milen(at)radev(dot)net> wrote:
>
> I have performance problems with a DB (slow queries) and I suspect the
> main cause is that a lot of queries wait for a lock on one small
> table. That's why I need some stats about the number and (average)
> wait-time for locks (even only for this particular table).
>
> After a bit of googling I found a project in PgFoundry with a
> promising description - http://pgfoundry.org/projects/pglockdiag/.
> Unfortunately the projects seems stillborn - no published files and
> nothing in CVS.
>
>
> --
> Milen A. Radev
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | "Milen A(dot) Radev" <milen(at)radev(dot)net> |
Cc: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Lock Statistics |
Date: | 2007-07-31 02:20:44 |
Message-ID: | 20070731022044.GB23999@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
On Mon, Jul 30, 2007 at 07:11:11PM +0300, Milen A. Radev wrote:
> I have performance problems with a DB (slow queries) and I suspect the
> main cause is that a lot of queries wait for a lock on one small
> table. That's why I need some stats about the number and (average)
> wait-time for locks (even only for this particular table).
Why do you suspect that locks are the problem? Unless the queries
are making concurrent updates of the same row(s) locking isn't
likely to be the problem due to the way MVCC works.
Could you post one of the slow queries along with the EXPLAIN ANALYZE
output? Are you vacuuming and analyzing your tables regularly?
What version of PostgreSQL are you running?
PostgreSQL 8.3 will have a log_lock_waits configuration setting to
log locks that wait longer than deadlock_timeout but that doesn't
help you now unless you're able and willing to run tests in a version
of PostgreSQL that's still under development (don't use it for
anything you wouldn't want to lose).
--
Michael Fuhr
From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | adey <adey11(at)gmail(dot)com> |
Cc: | "Milen A(dot) Radev" <milen(at)radev(dot)net>, pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Lock Statistics |
Date: | 2007-07-31 02:22:59 |
Message-ID: | 20070731022259.GC23999@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
On Tue, Jul 31, 2007 at 10:35:25AM +1200, adey wrote:
> -- CAUTION: this query may impact system performance as you are selecting
> from system tables
What difference are you expecting that to make and why?
--
Michael Fuhr
From: | adey <adey11(at)gmail(dot)com> |
---|---|
To: | "Michael Fuhr" <mike(at)fuhr(dot)org> |
Cc: | "Milen A(dot) Radev" <milen(at)radev(dot)net>, pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Lock Statistics |
Date: | 2007-07-31 03:13:14 |
Message-ID: | 1c66bda80707302013xca6c726gc981ca52f4d562d0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
On 7/31/07, Michael Fuhr <mike(at)fuhr(dot)org> wrote:
>
> On Tue, Jul 31, 2007 at 10:35:25AM +1200, adey wrote:
> > -- CAUTION: this query may impact system performance as you are
> selecting
> > from system tables
>
> What difference are you expecting that to make and why?
It was a warning I received some years ago when I riginally discovered the
query. Presumably reading from system tables competes with user queries for
the system tables, slowing them down. I can't say I've ever noticed any
impact when using it though.
--
> Michael Fuhr
>