BUG #16180: s_lock botteneck when load pg_stat_statements and save=off|on

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: digoal(at)126(dot)com
Subject: BUG #16180: s_lock botteneck when load pg_stat_statements and save=off|on
Date: 2019-12-30 14:13:17
Message-ID: 16180-c53ce0f4aaa85596@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16180
Logged by: Zhou Digoal
Email address: digoal(at)126(dot)com
PostgreSQL version: 12.1
Operating system: CentOS 7.7 x64
Description:

i use postgresql 12.1 and test load or unload pg_stat_statements.

when pg_stat_statements.save=off, i found it also call pgss_store

```
Samples: 217K of event 'cpu-clock', 4000 Hz, Event count (approx.):
22185764626 lost: 411555/7098659 drop: 446791/8362859

Children Self Shared Object Symbol


- 55.76% 55.76% [kernel] [k] cpuidle_enter_state


- 7.97% 0xffffffff93a000d5


- 55.37% 0xffffffff93a59c97


0xffffffff93affc2a


0xffffffff93a37bce


0xffffffff93fbf9ae


- 29.82% 0.25% postgres [.] PostgresMain


- 4.16% PostgresMain


- 2.00% finish_xact_command


- 2.02% CommitTransactionCommand


- 2.44% CommitTransaction


- 1.90% PreCommit_Portals


- 1.83% PortalDrop


- 1.84% PortalCleanup


- 2.18% pgss_ExecutorEnd


- 10.32% pgss_store


- 10.77% s_lock


1.30% perform_spin_delay


- 1.25% exec_execute_message (inlined)


- 13.87% 0.03% postgres [.] CommitTransactionCommand


2.44% CommitTransactionCommand


- CommitTransaction


- 1.90% PreCommit_Portals


- 1.83% PortalDrop


- 1.84% PortalCleanup


- 2.18% pgss_ExecutorEnd


- 10.32% pgss_store


- 10.77% s_lock


1.30% perform_spin_delay


- 13.84% 0.04% postgres [.] CommitTransaction


- 2.40% CommitTransaction


- 1.90% PreCommit_Portals


- 1.83% PortalDrop


- 1.84% PortalCleanup


- 2.18% pgss_ExecutorEnd


- 10.32% pgss_store


- 10.77% s_lock


1.30% perform_spin_delay


- 13.58% 0.01% postgres [.] finish_xact_command


1.99% finish_xact_command


- 12.63% 0.02% postgres [.] PreCommit_Portals


- 1.87% PreCommit_Portals


- 1.83% PortalDrop


- 1.84% PortalCleanup
```

and performance reduce very much.

load pg_stat_statements (104core machine):

```
pgbench -M prepared -n -r -P 1 -c 104 -j 104 -T 120 -S

transaction type: <builtin: select only>
scaling factor: 1000
query mode: prepared
number of clients: 104
number of threads: 104
duration: 120 s
number of transactions actually processed: 67468127
latency average = 0.185 ms
latency stddev = 0.348 ms
tps = 562224.744452 (including connections establishing)
tps = 562300.147713 (excluding connections establishing)
statement latencies in milliseconds:
0.001 \set aid random(1, 100000 * :scale)
0.185 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
```

unload pg_stat_statements:

```
transaction type: <builtin: select only>
scaling factor: 1000
query mode: prepared
number of clients: 104
number of threads: 104
duration: 120 s
number of transactions actually processed: 187563515
latency average = 0.066 ms
latency stddev = 0.014 ms
tps = 1562993.591525 (including connections establishing)
tps = 1563258.811725 (excluding connections establishing)
statement latencies in milliseconds:
0.001 \set aid random(1, 100000 * :scale)
0.065 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
```

why pg 12 load pg_stat_statements and pg_stat_statements.save set to off
will also call pgss_store.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sergei Kornilov 2019-12-30 14:34:13 Re: BUG #16180: s_lock botteneck when load pg_stat_statements and save=off|on
Previous Message Загороднев Роман Евгеньевич 2019-12-30 11:46:05 RE: pg_upgrade