"Benchmarking BSD and Linux"
me at endeavour.zapto.org
Tue Mar 8 12:34:05 PST 2011
Hi,Recently I came across this site: http://bulk.fefe.de/scalability/The author ran a number of microbenchmarks on a then-current Linux and BSD systems to get an idea of the scalability (or breakdown) of a number of common and uncommon paths. I just ran the tests on a DragonFly 2.9 (kernel of 03/04/2011, compiled with gcc 4.4, world of 3/2) 1.5 GHz P4 (willamette) with 512 MB of RAM. I don't have any comments on the tests themselves, here are just graphs of the results.
-> The first test from the set I ran was the bind benchmark; this just calls bind to port 0 on a number of sockets.http://m-net.arbornet.org/~sv5679/bind4-dfly-03042011.png
(using the same scale as the graph on the original page)-> The fork benchmark; creates a pipe, forks a number of child processes, wait for each to write a byte into that pipe; aggregates time between fork and receiving the byte.
http://m-net.arbornet.org/~sv5679/fork-dfly-03042011.png(larger vertical scale than fefe.de)-> The static fork benchmark; same as above, but with a statically linked process.
http://m-net.arbornet.org/~sv5679/fork-vs-forks-dfly-03042011.png(larger vertical scale than fefe.de)
-> The mmap benchmark:http://m-net.arbornet.org/~sv5679/mmap-dfly-03042011. png(very similar scale)-> the mmap benchmark part 2 (touching the pages);
http://m-net.arbornet.org/~sv5679/mmap1-dfly-03042011.png(same scale)-> Fork cleanup benchmark (in the comments):http://m-net.arbornet.org/~sv5679/fork-cleanup-latency2-dfly-03042011.png
(same scale)Overall, our graphs look very similar to the FreeBSD systems tested there (shapewise; the hardware & values are different and not directly comparable); our fork() curve is closer to FreeBSD 4's than FreeBSD 5's, (see http://bulk.fefe.de/scalability/freebsd/fork-freebsd-current.png and http://m-net.arbornet.org/~sv5679/fork-dfly-03042011.png).
Just thought that these'd be interesting. Take them with a grain of pepper; they are microbenchmarks and are measuring things about very specific code paths. -- vs
More information about the Kernel