Skip to content
Neel Nadgir edited this page Sep 18, 2022 · 1 revision

uperf is benchmarking tool to measure network performance. 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, VSOCK
  • Connection setup and tear down scalability for different protocols
  • Effect of noise on ongoing network connections
  • Does it matter if I use processes instead of threads to do network communication?
  • What is the L2 cache miss rate for connection setup?
  • Is sendfilev(3EXT) (with one file) equivalent to sendfilev(3EXT)?
  • Understand TCP, UDP, SCTP, SSL, VSOCK performance under a variety of conditions
  • Test various TCP Congestion control algorithms

and much more!

Clone this wiki locally