Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

baidu/dperf

Repository files navigation

dperf is a high-performance network traffic generator and load testing tool based on DPDK.

Advantages

  • High Performance

    Built on DPDK, dperf can generate massive traffic using a single x86 server — achieving tens of millions of HTTP Connections Per Second (CPS), hundreds of Gbps throughput, and billions of concurrent connections.

  • Comprehensive Statistics

    Provides detailed real-time metrics and identifies every packet drop or error.

  • Versatile Use Cases

    • Load and stability testing for Layer 4 Load Balancers and gateways
    • Network performance benchmarking for cloud servers
    • Evaluation of NIC and CPU packet processing capabilities
    • Acts as a high-performance HTTP server or client for testing scenarios

Performance

All results were measured using the following hardware and configuration:

  • CPU: Intel Xeon Gold 5418Y ×ばつ 2
  • Memory: 128 GB ×ばつ 2
  • NIC: Intel E810-C Dual-Port 100GbE ×ばつ 2
  • OS: Linux 5.10.0

HTTP Connections Per Second (CPS)

Client Cores Server Cores HTTP CPS (Million) Client CPU Usage (%) Server CPU Usage (%)
1 1 4 74 71
2 2 8 74 72
4 4 16 73 70
8 8 32 70 68
16 16 64 70 68

HTTP Throughput (Gbps)

Client Cores Server Cores RX Throughput TX Throughput Client CPU Usage (%) Server CPU Usage (%)
1 1 98.3 Gbps 98.3 Gbps 78 80
2 2 196.7 Gbps 196.7 Gbps 78 82

Concurrent Connections

Client Cores Server Cores Connections (Billion) Client CPU Usage (%) Server CPU Usage (%) Memory Usage (GB)
1 1 1 48 48 60
2 2 2 48 48 120
4 4 4 48 48 240

TCP Packets Per Second (PPS)

Client Cores RX PPS (Mpps) TX PPS (Mpps) Client CPU Usage (%)
1 16.8 16.8 99
6 105.2 105.2 99
12 204.6 204.6 99

Real-Time Statistics

dperf prints real-time statistics every second, including CPS, TPS, PPS, packet drops, socket errors, and HTTP status counts. Example output:

seconds 22 cpuUsage 52
pktRx 3,001,058 pktTx 3,001,025 bitsRx 2,272,799,040 bitsTx 1,920,657,600 dropTx 0
arpRx 0 arpTx 0 icmpRx 0 icmpTx 0 otherRx 0 badRx 0
synRx 1,000,345 synTx 1,000,330 finRx 1,000,350 finTx 1,000,350 rstRx 0 rstTx 0
synRt 0 finRt 0 ackRt 0 pushRt 0 tcpDrop 0
skOpen 1,000,330 skClose 1,000,363 skCon 230 skErr 0
httpGet 1,000,345 http2XX 1,000,350 httpErr 0
ierrors 0 oerrors 0 imissed 0

Documentation

See the official website at https://dperf.org/.

Contributing

We welcome contributions! Please see the CONTRIBUTING file for details.

Patent

  • Title: Testing Method and Apparatus for Network Devices
  • Inventor: Jianzhang Peng
  • Patent Number: CN114205274B
  • Issue Date: June 11, 2024

Acknowledgment

We gratefully acknowledge xnetin for providing the high-performance testing platform used in our benchmarking experiments.

Author

Jianzhang Peng holds a Ph.D. in Computer Science from the University of Science and Technology of China (USTC). He previously worked as a Principal Engineer at Baidu, where he contributed to the development of high-performance L4 load balancer systems. He initiated and developed the dperf project during his time at Baidu, and continues to maintain it as an open-source contributor. His current focus is on low-latency network protocol stacks for quantitative trading systems.

License

dperf is licensed under the Apache License 2.0.

AltStyle によって変換されたページ (->オリジナル) /