Subject: Thread benchmarks, round 2
To: None <email@example.com>
From: Andrew Doran <ad@NetBSD.org>
Date: 10/05/2007 00:04:27
So, I learned a few things since I put up the previous set of benchmarks:
- The erratic behaviour from Linux is due to the glibc memory allocator.
Using Google's tcmalloc, the problem disappears.
- I missed a few things when porting jemalloc from FreeBSD. One of them
was fairly major. Due to my mistake jemalloc on NetBSD was, basically,
single threaded. That said it did show a noticable improvement over
- There was a nasty performance bug in NetBSD's pthread mutexes, which
is now fixed. libpthread has also had a couple more tweaks for performance
that have had a positive impact.
- The memory allocator used has a significant effect on sysbench itself:
it needs to be multithreaded.
- Mindaugas has made more improvements to his scheduler and these are
showing a really positive effect.
So after making some changes to NetBSD, and changes to how I'm benchmarking
the systems, I have rerun them. In contrast to the previous runs, this one
is done locally:
Kris Kennaway has kindly offered to try NetBSD on an 8-way system. I expect
that NetBSD will hit a fairly clear ceiling due to poll, fcntl and socket
I/O causing contention on kernel_lock. It will be interesting to see.