ipbench - A distributed framework for network benchmarking
What is ipbench?
ipbench is an extensible and reliable benchmarking suite we created in
response to some common problems we saw with existing IP benchmark
operation : We want multiple clients able to perform the same
test a target machine. We want to be able to get the results
reliably and consistently without resorting to hacking sh and perl
scripts to munge data around.
"heavyweight" server : Most existing network benchmark suites
assume that both ends of the test are complete operating systems, with
BSD socket support and POSIX compliance. Experimental operating
systems often don't meet these requirements.
- Extensibility : We want to be able to add
new and varied tests easily.
aren't that many benchmark suites around : many paper authors
resort to writing their own benchmarks, creating problems with
repeatability and reliability of results.
The test suite has three main components
- A controller : Your
- n testers : A "heavyweight" PC
on which the test will run
- A target :
depending on the test requires different capabilities.
The general procedure is that you specify the test and the controller
sets up and sychronously starts the tester machines running their test
aimed at the target. Once they have completed, they report their
results back to the controller, which concatenates the results from all
testers and reports a final tally.
Some tests have a companion component that runs on the target, such as
usage monitor (the light grey lines above). These are optional
but work similar to the testing clients.
The infrastructure is written in Python for maintainability, and the
tests are written as plugins in C for speed. There is a simple
API for writing new tests should you wish to.
We have instrumented a latency test which we belive is one of the most
flexible latency tests available.
For documentation on the latency test see this
We have a beta stage distributed NFS test included in the distribution.
We have implemented an accurate CPU usage meter that can be run on the
Using simple shell scripts called by ipbench you can very quickly
extend the operation of ipbench. For example, wrapper scripts
around oprofile can
automatically return kernel profiling information from your target
machine during a run.
Please grab the latest sources from CVS
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/ipbench co
Once you have the sources, run autogen.sh and then
configure and make. Documentation is lagging a
little behind development at this stage, but please give it a go and
email with any questions.
Please feel free to submit patches or bugs, but please checkout the
latest CVS sources.
You may also check out the sourceforge page
for any releases.
This work sponsored by