| jeffr_tech ( @ 2007-02-20 16:27:00 |
Benchmarking with sysbench.
I did some tests to compare Linux vs FreeBSD using mysql and sysbench.
This graph shows fedora core 6 vs freebsd bleeding edge in cvs 7.0. The test is sysbench with the following parameters:
sysbench --test=oltp --num-threads=${i} --mysql-user=root --max-time=60
--max-requests=0 --oltp-read-only=on run
Both operating systems are installed on the same machine on different partitions on a large raid array. The machine has 8 2ghz opteron cores on 4 dies with 16gb of ram. Both are running mysql 5.0.x where x is within about 3 of each other. I'm using the rpm from fedora and the freebsd package from ports.
Here is the sysbench output as .out files and the linux and freebsd my.cnf files:
linux.out
linux.cnf
bsd.out
bsd.cnf
To my knowledge the configuration files only differ in paths. FreeBSD without this cnf file ran at half the speed. I suspect the default runs with very few threads. Kris Kennaway has a more complete set of tests on a similar machine that show the results of a recent change I made (called filedesc below) that fixed some significant problems. The other specifiers are various patches from other developers. I haven't tested those on my machine.
holycrap.png
My graph shows that linux gets a slightly higher peak but has some horrible scalability problem after 1 thread per cpu. I fully expect someone in the audience to raise their hand and point out the kernel parameter I need to tweak to fix this. Any other suggestions on the database config files or other interesting tests to run are welcome. I'm going to get some more FreeBSD patches committed over the next few weeks so the best lines from holycrap.png are available in cvs.
At a minimum I hope this will end up showing we are performance competitive with Linux on moderately sized machines now that our SMP effort is maturing. I'm the first to admit it's been behind for some time.
I did some tests to compare Linux vs FreeBSD using mysql and sysbench.

This graph shows fedora core 6 vs freebsd bleeding edge in cvs 7.0. The test is sysbench with the following parameters:
sysbench --test=oltp --num-threads=${i} --mysql-user=root --max-time=60
--max-requests=0 --oltp-read-only=on run
Both operating systems are installed on the same machine on different partitions on a large raid array. The machine has 8 2ghz opteron cores on 4 dies with 16gb of ram. Both are running mysql 5.0.x where x is within about 3 of each other. I'm using the rpm from fedora and the freebsd package from ports.
Here is the sysbench output as .out files and the linux and freebsd my.cnf files:
linux.out
linux.cnf
bsd.out
bsd.cnf
To my knowledge the configuration files only differ in paths. FreeBSD without this cnf file ran at half the speed. I suspect the default runs with very few threads. Kris Kennaway has a more complete set of tests on a similar machine that show the results of a recent change I made (called filedesc below) that fixed some significant problems. The other specifiers are various patches from other developers. I haven't tested those on my machine.
holycrap.png
My graph shows that linux gets a slightly higher peak but has some horrible scalability problem after 1 thread per cpu. I fully expect someone in the audience to raise their hand and point out the kernel parameter I need to tweak to fix this. Any other suggestions on the database config files or other interesting tests to run are welcome. I'm going to get some more FreeBSD patches committed over the next few weeks so the best lines from holycrap.png are available in cvs.
At a minimum I hope this will end up showing we are performance competitive with Linux on moderately sized machines now that our SMP effort is maturing. I'm the first to admit it's been behind for some time.