I have been following the spin locking discussion, and even have done some
hacking on the spin lock mechanism to experiment.

I can't get consistent results, not consistently enough to measure anything but
the most dramatic of changes.

My script looks like this (thanks Tom)

#! /bin/sh

HOST=snoopy
DB=bench
totxacts=10000

for c in 10 25 50 100
do
        t=`expr $totxacts / $c`
        psql -h $HOST -c 'vacuum full' $DB
        psql -h $HOST -c 'checkpoint' $DB
        echo "===== sync ======" 1>&2
        sync;sync;sync;sleep 10
        echo $c concurrent users... 1>&2
        ./pgbench -n -t $t -h $HOST -c $c $DB
done

My results can vary as much as 10%, with a reliable +-2.5% from run to run. It
is hard to make any good conclusions.

My system is RedHat 7.2 with the 2.4.17 kernel, compiled for SMP.
My database is on two EIDE drives connected to a promise ATA 66 controller
card. (each drive to its own channel, and one drive per channel) DMA is
enabled.
the postgres directory is on one drive, and pg_xlog is symlinked to a directory
on the other.

I have 1/2 gig RAM, 2CPU SMP

pg bench:
scale: 50
clients: 50
transactions: 200
tps range averages ~71.7
with a high of 72.6
and a low of 70.9

Sat, 05 Jan 2002 23:32:28 -0500
mlw <markw@mohawksoft.com>
pgbench, consistency?