If you have not amended any Postgres config parameters, then you'll get
checkpoints approx every 5 min or so. Thus using a Pgbench run time of
5min is going sometimes miss/sometimes hit a checkpoint in progress -
which will hugely impact test results.
I tend to do Pgbench runs of about 2x checkpoint_timeout - (i.e 10 min
for default configurations). Also for increased repeatability, I do a
manually triggered checkpoint immediately before each run.
regards
Mark
On 13/12/18 1:53 AM, Mariel Cherkassky wrote:
Hey,
I installed a new postgres 9.6 on both of my machines. I'm trying to
measure the differences between the performances in each machine but
it seems that the results arent accurate.
I did 2 tests :
1)In the first test the scale was set to 100 :
pgbench -i -s 100 -U postgres -d bench -h machine_name
pgbench -U postgres -d bench -h machine_name -j 2 -c 16 -T 300
RUN TPS - machine1 TPS-machine2
1 697 555
2 732 861
3 784 842
2)In this test the scale was set to 10000 :
pgbench -i -s 10000 -U postgres -d bench -h machine_name
pgbench -U postgres -d bench --progress=30 -h machine_name -j 2 -c 16
-T 300
RUN TPS-MACHINE1 TPS-MACHINE2
1 103 60
2 63 66
3 74 83
4 56 61
5 75 53
6 73 60
7 62 53
In both cases after the initalization I restarted the database and
cleared the cashe(echo 1 > /proc/sys/vm/drop_caches) one time. During
all the runs I didnt shutdown the machine.
Now, I was hopping the the tps will be almost the same in each machine
for all the runs. In other words, I wanted to see that the tps in
machine1 during all the tps are almost the same but I see that the
values arent accurate.
Any idea what might cause the differences in every run ?