Subject: Thread benchmarks
To: None <firstname.lastname@example.org, email@example.com>
From: Andrew Doran <firstname.lastname@example.org>
Date: 09/28/2007 18:51:07
Back in March I posted some MySQL benchmarks after we switched to a 1:1
threading model in -current *. I've spent a lot of time tuning the pthread
library so I thought I'd post a followup. The original benchmark that I used
(supersmack) now performs much better on -current that it did a few months
ago, so I picked something else this time: MySQL sysbench.
Most of the sysbench runs that I've seen to date have sysbench running on
the same machine as the database. That's a good test but with the exception
of small installations and out-of-band activity, production setups rarely
look like that. So I ran sysbench itself on a seperate dual core system.
Here are the results, comparing NetBSD 3 with NetBSD-current:
And NetBSD-current compared to other systems:
Note this is stock NetBSD-current with FreeBSD's malloc() (jemalloc) in
libc. I'll be merging that some time soon.
With the vmlocking CVS branch and Mindaugas' new scheduler NetBSD peaks
around 500 TPS. There is a very gradual fall off in the number of TPS
achieved as the number of connections begins to ramp up. I suspect that
could be due to a weakness somewhere in the network stack, so I'm hopeful
that a bit of time spent profiling with large numbers of connections could
yield good results.