explaingit

baidu/dperf

5,559CAudience · ops devopsComplexity · 4/5LicenseSetup · hard

TLDR

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.

Mindmap

mindmap
  root((dperf))
    What it does
      HTTP load gen
      Packet benchmarking
      Live stats output
    Tech stack
      C language
      DPDK framework
      100GbE hardware
    Use cases
      Load balancer test
      NIC benchmarking
      Cloud server limits
    Audience
      Network engineers
      Infra teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Stress-test a Layer 4 load balancer to see how many simultaneous connections it can handle before dropping packets

USE CASE 2

Benchmark a cloud server's maximum network throughput and packet processing capacity

USE CASE 3

Measure network card and CPU performance under sustained 100 Gbps traffic

USE CASE 4

Generate millions of HTTP client requests per second from a single machine for infrastructure testing

Tech stack

CDPDK

Getting it running

Difficulty · hard Time to first run · 1day+

Requires server-grade hardware with DPDK-compatible NICs and privileged access to bypass the OS network stack.

Apache 2.0, use freely in any project, commercial or open-source, as long as you keep the license notice.

In plain English

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.

Copy-paste prompts

Prompt 1
I want to use dperf to stress-test my Layer 4 load balancer. Write me a config file that sends 1 million new HTTP connections per second to IP 192.168.1.10 on port 80.
Prompt 2
Explain the dperf statistics output format: what does each column mean, and which numbers should I watch when looking for packet drops under load?
Prompt 3
Help me set up a dperf client and server pair to benchmark my 10GbE network card. What hardware and DPDK configuration do I need to saturate the link?
Open on GitHub → Explain another repo

← baidu on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.