Skip to content

Performance Benchmark

Kookiejarz edited this page Sep 2, 2026 · 2 revisions

Performance Benchmark

This historical benchmark simulates a volumetric UDP flood. An AMD EPYC™ 7Y43 server generated approximately 367k packets per second (188 Mbps) against a 1 vCPU AMD Ryzen 9 3900X instance protected by Auto XDP.

Treat the numbers as a recorded result, not a current performance guarantee; hardware, kernel, driver, traffic shape, and XDP mode affect the result.

Test environment

  • Attacker: AMD EPYC™ 7Y43 @ 2.55 GHz, approximately 367k PPS / 188 Mbps
  • Target: AMD Ryzen 9 3900X @ 2.0 GHz, 1 vCPU, 1 GB RAM
  • Tool: pktgen (Linux kernel packet generator)
  • Attacker and target connected over the public internet

Comparative results

Metric Auto XDP off Auto XDP on Improvement
Softirq CPU usage 85.9% 3.0% ~28× reduction
System responsiveness Extremely laggy Smooth Significant
Packet handling Kernel networking stack Driver-level drop

The result shows the expected difference between processing the flood in the kernel networking stack and dropping it at the XDP hook.

Recorded screenshots

XDP off — softirq at 85.9% under flood:

XDP OFF

XDP on — same flood, CPU drops to 3.0%:

XDP ON

XDP on — before attack:

XDP ON, before attack

XDP on — after attack:

XDP ON, after attack

How to reproduce

Run on a disposable, privileged Linux host. Replace INTERFACE, TARGET_IP, and TARGET_MAC with the target values:

modprobe pktgen

PGDEV=/proc/net/pktgen/INTERFACE
echo "rem_device_all" > /proc/net/pktgen/kpktgend_0
echo "add_device INTERFACE" > /proc/net/pktgen/kpktgend_0

echo "count 10000000" > "$PGDEV"
echo "pkt_size 64" > "$PGDEV"
echo "dst TARGET_IP" > "$PGDEV"
echo "dst_mac TARGET_MAC" > "$PGDEV"
echo "clone_skb 100" > "$PGDEV"

Clone this wiki locally