Skip to content

Commit a938ca6

Browse files
authored
add performance charts to README
1 parent 0e5e182 commit a938ca6

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,41 @@ The `apps/` folder contains two simple examples: a [ping-pong](apps/pingpong) an
112112

113113
UDPDK runs in two separate processes: the primary is the one containing the application logic (i.e. where syscalls are called), while the secondary (*poller*) continuously polls the NIC to send and receive data. The packets are exchanged between the application and the poller through shared memory, using lockless ring queues.
114114

115+
## Performance
116+
117+
We compare UDPDK against standard UDP sockets in terms of throughput and latency.
118+
119+
**Environment**
120+
121+
Two identical servers are connected point-to-point on a 10G interface. Their specs are:
122+
123+
*CPU:* Intel Xeon E5-2640 @2.4GHz
124+
*RAM:* 64GB
125+
*OS:* Ubuntu 18.04
126+
*Kernel:* 4.15.0
127+
*NIC:* Intel X710 DA2 10GbE
128+
*NIC driver:* VFIO (DPDK) or i40e (normal sockets)
129+
130+
**Throughput**
131+
132+
We measure the maximum throughput achieved varying the packet size.
133+
The latter is inclusive of the UDP, IP and MAC headers.
134+
135+
As shown in the picture, UDPDK is up to **18x better** than traditional sockets.
136+
It should be noted that UDPDK saturates the 10G connection, which unfortunately is all we had: a 40G inferface would make it definitely shine!
137+
138+
![Throughput chart](media/throughput_benchmark.png)
139+
140+
**Latency**
141+
142+
We measure the latency and its jitter.
143+
Again, UDPDK proves to be an order of magnitude better than standard sockets.
144+
145+
| | UDPDK | Standard |
146+
| --- | --- | --- |
147+
*Mean (μs)* | 13.92 | 116.57 |
148+
*Std (μs)* | 0.74 | 18.49 |
149+
115150
## License
116151

117152
UDPDK is released under [BSD 3-Clause license](LICENSE).

0 commit comments

Comments
 (0)