uperf is a network performance tool that supports modelling and replay of
various networking patterns. uperf was developed by the Performance
Applications Engineering group at Sun Microsystems and is released under the
GNU General Public License Version 3.
uperf represents the next generation benchmarking tools (like filebench) where
instead of running a fixed benchmark or workload, a description (or model) of
the workload is provided and the tool generates the load according to the
model. By distilling the benchmark or workload into a model, you can now do
various things like change the scale of the workload, change different
parameters, change protocols, etc and analyse the effect of these changes on
your model. You can also study the effect of interleaving CPU activity, or
think times or the use of SSL instead of TCP among many other things.
Some of the questions you could answer using uperf are
- Bandwidth and latency (unidirectional and bi-directional) with different
protocols like TCP, UDP, SCTP, SSL
- Connection setup and teardown scalability for different protocols
- Effect of noise on ongoing network connections
- Does it matter if I use processes instead of threads to do network
- What is the L2 cache miss rate for connection setup?
- Understand TCP, UDP, SCTP, SSL performance under a variety of conditions
and much more!