Hi all, I'm trying to understand some simple benchmarks but I need an hint. =# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 11.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit shared_buffers = 1 GB checkpoint_timeout = 5 min I've created a pgbench database as follows (around 4.5 GB): % pgbench -i -s 300 -F 100 --foreign-keys --unlogged-tables -h 127.0.0.1 -U luca pgbench and I've tested three times (each time after a restart) with the following: % pgbench -T 600 -j 4 -c 4 -h 127.0.0.1 -U luca -P 60 pgbench Since tables are unlogged, I was expecting no much difference in setting checkpoint_completion_target, but I got (average results): - checkpoint_completion_target = 0.1 ==> 755 tps - checkpoint_completation_target = 0.5 ==> 767 tps - checkpoint_completion_target = 0.9 ==> 681 tps so while there is not a big different in the first two cases, it seems throttling I/O reduces the tps, and I don't get why. Please note that there is some small activity while benchmarking, and that's why I ran at least three tests for each setting. Am I looking at wrong (or meaningless) numbers? Thanks for any hint. Luca