1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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
    [email protected]:/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)