Microbenchmarks rarely measure real world performance. This is especially true in networking where applications can use multiple protocols, use different types of communication, interleave CPU processing with communication, etc. However, popular microbenchmarks like iPerf and netperf are very simplistic, supporting only one protocol at a time, fixed message sized communication, no support for interleaving CPU processing between communication, and so on. Thus there is a need for a tool to closely model real world performance.
Uperf (Unifed performance tool for networking) solves this problem by allowing the user to model the real world application using a very high level language (called profile) and running this over the network. It allows the user to use multiple protocols, varying message sizes for communication, a 1xN communication model, support for collection of CPU counter statistics, and much more.
The following list is a short overview of some of the features supported by uperf:
- Support modeling of workloads using profiles
- Support for Multiple protocols (new protocols can be easily integrated). Currently the following protocols are supported.
TCP UDP SCTP SSL
- 1-Many hosts
- Support for CPU counters and lots of other detailed statistics
- Fenxi integration (Cool graphs!).
- Ability to choose whether to use processes or threads
- Runs on Solaris, Linux and windows