Test system configuration
(Server):
1x Intel Xeon E3-1270 3.4GHz Xeon CPU, 4 cores, 8 threads
16GB RAM, em network
(Client)
Same as above
uname's:
FreeBSD 10.0-CURRENT #0: Fri Nov 4 03:39:53 UTC 2011
root@pbox1.allbsd.org:/usr/obj/usr/src/sys/GENERIC
DragonFly v2.13.0.256.g945da-DEVELOPMENT #195: Sat Nov 12 18:52:44 PST 2011
root@test29:/usr/obj/usr/src/sys/X86_64_GENERIC
Setup notes:
mkdir -p $DESTDIR/pgsql/data
chown -R pgsql:pgsql $DESTDIR/pgsql
su -m pgsql -c 'initdb -D $DESTDIR/pgsql/data'
Edit $DESTDIR/pgsql/data/postgresql.conf and set:
max_connections=100
shared_buffers=4096MB
effective_cache_size=8192MB
update_process_title = off
Configuration:
Both:
sysctl -w kern.ipc.shm_use_phys=1
echo "kern.ipc.shm_use_phys=1" >> /etc/sysctl.conf
FreeBSD-only:
# This puts FreeBSD in line with the DragonFly auto-tuned defaults
sysctl -w kern.ipc.shmmax=11077935104
sysctl -w kern.ipc.shmall=2704574
sysctl -w vm.pmap.pv_entry_max=69709312
echo "kern.ipc.shmmax=11077935104" >> /etc/sysctl.conf
echo "kern.ipc.shmall=2704574" >> /etc/sysctl.conf
echo "vm.pmap.pv_entry_max=69709312" >> /etc/sysctl.conf
# Kill witness
sysctl -w debug.witness.watch=0
echo "debug.witness.watch=0" >> /etc/sysctl.conf
Initialize the database:
createdb -U pgsql pgbench
pgbench -i -s 500 -U pgsql pgbench # Approx 7GB
Run the tests:
pgbench -h 127.0.0.1 -U pgsql -S -T 300 -j 2 -c 24 pgbench
# -T Amount of time to run (seconds)
# -j Number of threads
# -c Number of clients (database connections, split among threads)
----------
RAW results:
DragonFly BSD
1
tps = 2814.436256 (including connections establishing)
2
tps = 5758.492990 (including connections establishing)
4
tps = 12110.817227 (including connections establishing)
8
tps = 23479.369294 (including connections establishing)
12
tps = 35262.181923 (including connections establishing)
16
tps = 45879.002498 (including connections establishing)
20
tps = 53121.327116 (including connections establishing)
24
tps = 56507.085984 (including connections establishing)
28
tps = 57766.732481 (including connections establishing)
32
tps = 58024.329481 (including connections establishing)
40
tps = 55903.643062 (including connections establishing)
48
tps = 55155.781111 (including connections establishing)
64
tps = 54639.144366 (including connections establishing)
80
tps = 50212.999512 (including connections establishing)
FreeBSD
1
tps = 3461.652333 (including connections establishing)
2
tps = 7011.837319 (including connections establishing)
4
tps = 14068.277973 (including connections establishing)
8
tps = 24343.375571 (including connections establishing)
12
tps = 33735.166180 (including connections establishing)
16
tps = 44396.261119 (including connections establishing)
20
tps = 53253.263396 (including connections establishing)
24
tps = 56646.069533 (including connections establishing)
28
tps = 57052.945475 (including connections establishing)
32
tps = 56741.652440 (including connections establishing)
40
tps = 55964.533240 (including connections establishing)
48
tps = 55211.878514 (including connections establishing)
64
tps = 52007.536455 (including connections establishing)
80
tps = 49995.428447 (including connections establishing)