Hello, is there any reason why I am getting worse results using pgsql11.2 in writing comparing it with pgsql 10.6?
I have two Instances, both just restored, so no bloats. Running read queries I have pretty much same results, a little bit better on pg11- Running writes the difference is in favour of 10. I am expecting pg11 to be better. Running pgbench : PG11 [root@STAGING-CMD1 ~]# /usr/local/pgsql11.2/bin/pgbench -t 1000 -c 20 -C -f stress_service_order.sql cmdstaging -U admin transaction type: stress_service_order.sql scaling factor: 1 query mode: simple number of clients: 20 number of threads: 1 number of transactions per client: 1000 number of transactions actually processed: 20000/20000 latency average = 45.322 ms tps = 441.283336 (including connections establishing) tps = 463.731537 (excluding connections establishing) PG10 [root@STAGING-CMD1 ~]# pgbench -t 1000 -c 20 -C -f stress_service_order.sql cmdstaging -U admin transaction type: stress_service_order.sql scaling factor: 1 query mode: simple number of clients: 20 number of threads: 1 number of transactions per client: 1000 number of transactions actually processed: 20000/20000 latency average = 44.686 ms tps = 447.565403 (including connections establishing) tps = 470.285561 (excluding connections establishing) This is making a really big difference with longer queries. Here I am updating a field in a random record. With more transactions the difference is bigger WITH POSTGRES 10 [root@STAGING-CMD1 ~]# pgbench -t 100000 -c 20 -C -f stress_service_order_read.sql cmdstaging -U postgres transaction type: stress_service_order_read.sql scaling factor: 1 query mode: simple number of clients: 20 number of threads: 1 number of transactions per client: 100000 number of transactions actually processed: 2000000/2000000 latency average = 55.291 ms tps = 442.1490778 (including connections establishing) tps = 454.846844 (excluding connections establishing) WITH POSTGRES 11 [root@STAGING-CMD1 ~]# pgbench -t 100000 -c 20 -C -f stress_service_order_read.sql cmdstaging -U postgres transaction type: stress_service_order_read.sql scaling factor: 1 query mode: simple number of clients: 20 number of threads: 1 number of transactions per client: 100000 number of transactions actually processed: 2000000/2000000 latency average = 53.291 ms tps = 375.297748 (including connections establishing) tps = 392.316057 (excluding connections establishing) The postgres.conf file are the same. max_connections = 220 shared_buffers = 10GB effective_cache_size = 120GB work_mem = 600MB maintenance_work_mem = 2GB min_wal_size = 1GB max_wal_size = 2GB checkpoint_completion_target = 0.7 wal_buffers = 16MB #default_statistics_target = 100 Using data_sync_retry=on doesn't make any difference. Is there anything else changed in the default values? Any trick? I don't want to go live and loose performances. Thanks a lot, Nicola