gitmyhub

dperf

C ★ 5.6k updated 1d ago

dperf: High-Performance Network Load Testing Tool Based on DPDK

dperf is a high-performance HTTP load testing tool that can generate tens of millions of new connections per second from a single server by bypassing the OS network stack using DPDK.

CDPDKsetup: hardcomplexity 4/5

dperf is a network load testing tool that can generate very high volumes of traffic from a single server. It is built on DPDK, a technology that moves network packet processing out of the operating system and into user space, which removes the overhead that normally limits how fast a server can send or receive packets. The result is that one machine running dperf can produce tens of millions of new HTTP connections per second and sustain hundreds of gigabits of throughput.

The tool is designed for testing infrastructure that sits in the path of heavy network traffic. Typical uses include stress-testing a Layer 4 load balancer, benchmarking a cloud server to understand its actual packet processing limits, or measuring how a network card and CPU hold up under extreme load. It can act as either an HTTP client generating requests or an HTTP server absorbing them, which lets you test both sides of a connection from your own hardware.

Every second while a test runs, dperf prints a line of statistics covering connections opened and closed, packets sent and received in each direction, TCP flags observed, HTTP response codes, and any drops or errors. This gives a running view of what the device under test is doing rather than just a final summary.

The published benchmarks were run on server-grade hardware: two Intel Xeon processors, 256 GB of RAM total, and two dual-port 100 GbE network cards. On that setup, 16 CPU cores on each side produced 64 million new HTTP connections per second.

dperf is written in C, released under the Apache 2.0 license, and was originally developed at Baidu.

Where it fits