Re: track_planning causing performance regression
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: bttanakahbk <bttanakahbk@oss.nttdata.com>,
Hamid Akhtar <hamid.akhtar@gmail.com>, Pavel Stehule <pavel.stehule@gmail.com>, Peter Geoghegan <pg@bowt.ie>, "Tharakan, Robins" <tharar@amazon.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-09-11T19:41:48Z
Lists: pgsql-hackers
On Fri, Sep 11, 2020 at 4:04 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: > > On 2020/09/11 16:23, bttanakahbk wrote: > > > > pgbench: > > initialization: pgbench -i -s 100 > > benchmarking : pgbench -j16 -c128 -T180 -r -n -f <script> -h <address> -U <user> -p <port> -d <db> > > # VACUUMed and pg_prewarmed manually before run the benchmark > > query:SELECT 1; > >> pgss_lwlock_v2.patch track_planning TPS decline rate s_lock CPU usage > >> - OFF 810509.4 standard 0.17% 98.8%(sys24.9%,user73.9%) > >> - ON 732823.1 -9.6% 1.94% 95.1%(sys22.8%,user72.3%) > >> + OFF 371035.0 -49.4% - 65.2%(sys20.6%,user44.6%) > >> + ON 193965.2 -47.7% - 41.8%(sys12.1%,user29.7%) > > # "-" is showing that s_lock was not reported from the perf. > > Ok, so my proposed patch degrated the performance in this case :( > This means that replacing spinlock with lwlock in pgss is not proper > approach for the lock contention issue on pgss... > > I proposed to split the spinlock for each pgss entry into two > to reduce the lock contention, upthread. One is for planner stats, > and the other is for executor stats. Is it worth working on > this approach as an alternative idea? Or does anyone have any better idea? For now only calls and [min|max|mean|total]_time are split between planning and execution, so we'd have to do the same for the rest of the counters to be able to have 2 different spinlocks. That'll increase the size of the struct quite a lot, and we'd also have to change the SRF output, which is already quite wide.
Commits
-
doc: Fix description about pg_stat_statements.track_planning.
- 306c5e05e20f 13.4 landed
- e48f2afee631 14.0 landed
- 9d2a7757347c 15.0 landed
-
doc: Add note about possible performance overhead by enabling track_planning.
- da6b6ff95bca 13.0 landed
- 321fa6a4a26c 14.0 landed
-
Change default of pg_stat_statements.track_planning to off.
- 8d459762b103 13.0 landed
- d1763ea8c9c3 14.0 landed