Re: Problems with pg_locks explosion - Mailing list pgsql-performance

From Armand du Plessis
Subject Re: Problems with pg_locks explosion
Date
Msg-id CANf99sVcffphectj+pQ4w-cczbB5Yi+aR_c1hpmbh_G+Bfuo0Q@mail.gmail.com
Whole thread Raw
In response to Re: Problems with pg_locks explosion  (Steven Crandell <steven.crandell@gmail.com>)
List pgsql-performance
Hi Steven, 

Sounds very familiar. Painfully familiar :( 

But I really don't know. All I can see is that in this particular configuration the instance has 2 x Intel Xeon E5-2670, eight-core processors. I can't find any info on whether it's flex or round robin. AWS typically don't make the underlying hardware known. The exception is on the chip-types on the higher-end instance types which is where I got the info above from. 

Below is an excerpt from atop when the problem occur. The CPUs jump to high sys usage, not sure if that was similar to what you saw?

How did you get it resolved in the end?

ATOP - ip-10-155-231-112                                                                      2013/04/02  01:25:40                 ------                                                                        2s elapsed
59;169H 0   70.15s  |              |  user   8.19s |               |               |              |               | #proc   1015  |              |  #zombie    0 |               | clones     0 |               |               |               |              |  #exit      2 |
CPU | sys    3182%  |              |  user     30% |               | irq       1%  |              |               |               | idle      0% |               | wait      0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      98%  |              |  user      1% |               | irq       1%  |              |               |               | idle      0% |               | cpu000 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      96%  |              |  user      4% |               | irq       0%  |              |               |               | idle      0% |               | cpu001 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu002 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu003 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu004 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu005 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      98%  |              |  user      2% |               | irq       0%  |              |               |               | idle      0% |               | cpu006 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu007 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu008 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu009 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu010 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu011 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu012 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      97%  |              |  user      3% |               | irq       0%  |              |               |               | idle      0% |               | cpu013 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu014 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu015 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu016 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      82%  |              |  user     18% |               | irq       0%  |              |               |               | idle      0% |               | cpu017 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu018 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu019 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu020 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu021 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu022 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu023 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu024 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu025 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu026 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu027 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu028 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu029 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys     100%  |              |  user      0% |               | irq       0%  |              |               |               | idle      0% |               | cpu030 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
cpu | sys      99%  |              |  user      1% |               | irq       0%  |              |               |               | idle      0% |               | cpu031 w  0%  |              |               |               | steal     0%  |              |  guest     0% |
CPL | avg1   90.60  |              |  avg5   60.80 |               |               | avg15  39.77 |               |               |              |  csw     1011 |               | intr   17568 |               |               |               |              |  numcpu    32 |
MEM | tot    58.5G  |              |  free  418.4M |               | cache  45.0G  | dirty   0.6M |               | buff    5.8M  |              |  slab  501.2M |               |              |               |               |               |              |               |
SWP | tot     0.0M  |              |  free    0.0M |               |               |              |               |               |              |               |               |              |               |               | vmcom  49.8G  |              |  vmlim  29.3G |
PAG | scan    1858  |              |               |               | stall 0  |              |               |               |              |               |               |              |  swin       0 |               |               |              |  swout      0 |
NET | transport     | tcpi     318 |          | tcpo     392  | udpi      34  |         |  udpo      39 | tcpao      0  |              |  tcppo      2 | tcprs      0  |              |  tcpie      0 |  tcpor      0 |               | udpnp      0 |  udpip      0 |
NET | network       |              |  ipi      357 |               | ipo      397  | ipfrw 0 |               | deliv    357  |              |               |               |              |               |               | icmpi      0  |              |  icmpo      0 |
NET | eth0    ----  |              |  pcki     318 | pcko     358  |               | si  200 Kbps |  so  947 Kbps |               | coll       0 |               | mlti       0  | erri       0 |               |  erro       0 | drpi       0  |              |  drpo       0 |
NET | lo      ----  |              |  pcki      39 | pcko      39  |               | si   79 Kbps |  so   79 Kbps |               | coll       0 |               | mlti       0  | erri       0 |               |  erro       0 | drpi       0  |              |  drpo       0 |
debug2: channel 0: window 997757 sent adjust 50819


On Tue, Apr 2, 2013 at 3:07 AM, Steven Crandell <steven.crandell@gmail.com> wrote:
Armand,

All of the symptoms you describe line up perfectly with a problem I had recently when upgrading DB hardware.
Everything ran find until we hit some threshold somewhere at which point the locks would pile up in the thousands just as you describe, all while we were not I/O bound.

I was moving from a DELL 810 that used a flex memory bridge to a DELL 820 that used round robin on their quad core intels.
(Interestingly we also found out that DELL is planning on rolling back to the flex memory bridge later this year.)

Any chance you could find out if your old processors might have been using flex while you're new processors might be using round robin?

-s


pgsql-performance by date:

Previous
From: Steven Crandell
Date:
Subject: Re: Problems with pg_locks explosion
Next
From: Tory M Blue
Date:
Subject: Re: Postgres upgrade, security release, where?