Unverified Commit a938ca60 authored by Leonardo Lai's avatar Leonardo Lai Committed by GitHub

add performance charts to README

parent 0e5e182a
......@@ -112,6 +112,41 @@ The `apps/` folder contains two simple examples: a [ping-pong](apps/pingpong) an
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.
## Performance
We compare UDPDK against standard UDP sockets in terms of throughput and latency.
**Environment**
Two identical servers are connected point-to-point on a 10G interface. Their specs are:
*CPU:* Intel Xeon E5-2640 @2.4GHz
*RAM:* 64GB
*OS:* Ubuntu 18.04
*Kernel:* 4.15.0
*NIC:* Intel X710 DA2 10GbE
*NIC driver:* VFIO (DPDK) or i40e (normal sockets)
**Throughput**
We measure the maximum throughput achieved varying the packet size.
The latter is inclusive of the UDP, IP and MAC headers.
As shown in the picture, UDPDK is up to **18x better** than traditional sockets.
It should be noted that UDPDK saturates the 10G connection, which unfortunately is all we had: a 40G inferface would make it definitely shine!
![Throughput chart](media/throughput_benchmark.png)
**Latency**
We measure the latency and its jitter.
Again, UDPDK proves to be an order of magnitude better than standard sockets.
| | UDPDK | Standard |
| --- | --- | --- |
*Mean (μs)* | 13.92 | 116.57 |
*Std (μs)* | 0.74 | 18.49 |
## License
UDPDK is released under [BSD 3-Clause license](LICENSE).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment