Download

1) Single CPU thread benchmark: benchmark_pps_ipg

In this benchmark, we perform several tests by sending packets using bittwist at packets per second (PPS) inter-packet gap (IPG) with a set number of packets onto the loopback interface. We use bittwiste to create all the packets for this benchmark. The benchmark results (actual) are compared to the expected values (calculated).

Benchmark configurations:

VersionBit-Twist 4.4
DateOctober 22, 2024
System
CPUIntel Core i7-13700K 5.4 GHz CPU
RAM32 GB SODIMM DDR5 4800 MT/s
DiskKingston KC3000 PCIe 4.0 NVMe M.2 SSD
OSUbuntu 22.04.5 LTS
Packet sizes All packets are UDP packets without payload, i.e. packet size is 42 bytes (Ethernet header = 14 bytes + IP header = 20 bytes + UDP header = 8 bytes).
PPS and packet count
PPS0.5Packets10, 20, 30, 40, 50
PPS1Packets20, 40, 60, 80, 100
PPS100Packets2000, 4000, 6000, 8000, 10000
PPS500KPackets10M, 20M, 30M, 40M, 50M

Benchmark results:
Each of the charts below shows the actual vs expected IPG in microseconds (left y-axis) at the specified PPS. The difference between actual and expected is shown in percentage (right y-axis). The number of packets sent is indicated by the x-axis.

2) On-wire max. throughput benchmark: benchmark_max_throughput

In this benchmark, we perform several tests by sending packets of increasing length using bittwist onto an actual network interface card connected to another host. The tests are repeated at several line rates in Mbps up to the maximum line rate of the NICs. We use bittwiste to create all the packets for this benchmark. The benchmark results (actual) are compared to the expected values (calculated).

Benchmark configurations:

VersionBit-Twist 4.4
DateOctober 22, 2024
System x 2
CPUIntel Core i7-13700K 5.4 GHz CPU
RAM32 GB SODIMM DDR5 4800 MT/s
DiskKingston KC3000 PCIe 4.0 NVMe M.2 SSD
NICMarvell AQtion AQC113 (10/100/1000/2500/5000/10000 Mb/s)
OSUbuntu 22.04.5 LTS
CableRJ45 CAT6 Ethernet cable (2m)
Packet sizes All packets are UDP packets with 0x00 bytes payload added to extend them to the length of, 64, 128, 256, 512, 1024, 1280, and 1514 bytes, as per recommendation from RFC 2544.
Line rates 10, 100, 1000, 2500 Mbps
Packet count We schedule each test to run for approximately 60 seconds, as per recommendation from RFC 2544, using this formula for packet count = (line_rate_mbps * 1000 * 1000 * 30) / (packet_bytes * 8)

Benchmark results:
Each of the charts below shows the actual vs expected throughput in Mbps (left y-axis) at the configured line rate in Mbps. The difference between actual and expected is shown in percentage (right y-axis). The packet length in bytes is indicated by the x-axis.