postgresql-performance using sysbench

Mike Tancsa mike at sentex.net
Tue Feb 5 18:46:23 UTC 2008


At 04:31 AM 1/30/2008, Kris Kennaway wrote:
>Claus Guttesen wrote:
>>>>I forgot to mention in my first post that I'm using ULE. The p800
>>>>controller has a (factory set) 25/75 read/write cache ratio.
>>>There's maybe one additional thing: do you dual-boot Linux and FreeBSD?
>>>If so, you'll need to set up a separate additional partition for the
>>>database, instead of benchmarking it with the file systems used by the
>>>OS, because different areas of the drive(s) have different performance -
>>>you can verify this with diskinfo -t.
>>I installed FreeBSD onto a boot-partition (p400i-controller) and used
>>the external storage (p800) as database-partition (eight 15K rpm
>>sas-disks in raid 1+0). Same with Ubuntu. When I re-installed FreeBSD
>>and ubuntu I wiped and formatted the previous partitions. Ubuntu used
>>ext3 which I guess is default fs.
>
>Write performance is something that we are working on, expect to 
>hear about progress over the coming weeks/months.

I tried both ronly and read write, and using a very large table on 
RELENG_7, AMD64, ULE, 8G of RAM, Xeon 3060 dual core

sysbench --pgsql-host=""  --test=oltp --pgsql-user=pgsql 
--oltp-table-size=29400000 prepare
run=3
clients=40


for a in 2 8 16 32
do
  for ((b=1; b<=$run; b++))
  do
   echo loop $b of clients $a
   /usr/local/pgsql/bin/psql -d sbtest -U pgsql -c "vacuum analyse;"
   sysbench --test=oltp --oltp-read-only --num-threads=${a} 
--pgsql-user=pgsql --pgsql-host="" --max-time=300 
--max-requests=10000 --oltp-table-size=29400000 run >> 
sysbench-clients-linux-ronly-mike-${a}
  done
done


This created ~ an 8G table.  The database was on a dedicated Areca 
RAID10 array and the OS was on a separate disk (IDE). The results are 
pretty similar. At least for me, they are close enough.  For my 
customer, its a lot of reading from a 18G database and not too many 
writes. Looking at how his app typically runs against FreeBSD and 
Fedora, there was very little difference as well.

For the ronly test the FreeBSD values were all pretty tight, but for 
the 2 client one, the initial run for Fedora really was 
crappy.  After that, they had pretty similar distributions.  The 
values below are averages for 3 runs and an average for 5 on the rw 
tests that had smaller table sizes (--oltp-table-size=1900000)

Threads      FreeBSD                               Fedora 8
2            1213 
(1219.07,1210.66,1211.44)         674  (128.18,746.81,1266.14)
8            1155                                  1406
16           1118                                  1358
32           1069                                  1192


On the RW tests,
Threads      FreeBSD                               Fedora 8
2             404                                   491
8             222                                   366
16            198                                   349
32            162                                   265

This was also without too much tweaking of the FreeBSD side.

kern.ipc.shmall=532768
kern.ipc.shmmax=134217728
kern.ipc.semmap=256

shared_buffers = 24MB
max_fsm_pages = 153600
update_process_title = off


         ---Mike 



More information about the freebsd-performance mailing list