Re: checkpointer continuous flushing - Mailing list pgsql-hackers

From Fabien COELHO
Subject Re: checkpointer continuous flushing
Date
Msg-id alpine.DEB.2.10.1508122225210.548@sto
Whole thread Raw
In response to Re: checkpointer continuous flushing  (Fabien COELHO <coelho@cri.ensmp.fr>)
Responses Re: checkpointer continuous flushing  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
> Here is a v8,

I collected a few performance figures with this patch on an old box with 8 
cores, 16 GB, RAID 1 HDD, under Ubuntu precise.
  postgresql.conf:    shared_buffers = 4GB    checkpoint_timeout = 15min    checkpoint_completion_target = 0.8
max_wal_size= 4GB
 
  init> pgbench -i -s 250  warmup> pgbench -T 1200 -M prepared -S -j 2 -c 4
  # 400 tps throttled "simple update" test  sh> pgbench -M prepared -N -P 1 -T 4000 -R 400 -L 100 -j 2 -c 4
    sort/flush : percent of skipped/late transactions     on   on   :  2.7     on   off  : 16.2     off  on   : 68.4
off  off  : 68.7
 
  # 200 tps  sh> pgbench -M prepared -N -P 1 -T 4000 -R 200 -L 100 -j 2 -c 4
    sort/flush : percent of skipped/late transactions     on   on   :  2.7     on   off  :  9.5     off  on   : 47.4
off  off  : 48.8
 

The large "percent of skipped/late transactions" is to be understood as 
"fraction of time with postgresql offline because of a write stall".
  # full speed 1 client  sh> pgbench -M prepared -N -P 1 -T 4000
    sort/flush : tps avg & stddev (percent of time beyond 10.0 tps)     on   on   : 631 +- 131 (0.1%)     on   off  :
564+- 303 (12.0%)     off  on   : 167 +- 315 (76.8%) # stuck...     off  off  : 177 +- 305 (71.2%) # ~ current pg
 
  # full speed 2 threads 4 clients  sh> pgbench -M prepared -N -P 1 -T 4000 -j 2 -c 4
    sort/flush : tps avg & stddev (percent of time below 10.0 tps)     on   on   : 1058 +- 455 (0.1%)     on   off  :
1056+- 942 (32.8%)     off  on   :  170 +- 500 (88.3%) # stuck...     off  off  :  209 +- 506 (82.0%) # ~ current pg
 

The combined features provide a tps speedup of 3-5 on these runs, and 
allow to have some control on write stalls. Flushing is not effective on 
unsorted buffers, at least on these example.

-- 
Fabien.



pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Raising our compiler requirements for 9.6
Next
From: Peter Geoghegan
Date:
Subject: Re: Raising our compiler requirements for 9.6