Analyzing the Performance of Linux Networking Approaches for Packet Processing : A Comparative Analysis of DPDK, io_uring and the standard Linux network stack

University essay from Linköpings universitet/Institutionen för datavetenskap

Abstract: This thesis investigates the network performance of DPDK, io_uring, and the standard Linux network stack in terms of latency, packet loss, throughput, and packet rate. DPDK is widely adopted in the telecommunication industry and has been for several years. io_uringis a new Linux system call interface, as of this writing, used for asynchronous I/O operations and could potentially offer better network performance than the standard Linux network stack. The analysis involves benchmarking of DPDK, io_uring and Linux network stack both with a continuous flow of data traffic and bursty traffic to see how the applications are able to handle different kinds of data traffic conditions. The Linux kernel network parameters were tuned in order to investigate what kind of performance increase can be achieved for an application using io_uring to gain a better understanding of howio_uring compares to DPDK. From the analysis, it was concluded that DPDK had the best overall performance when considering packet loss, throughput, latency, and packet rate.io_uring performed better than the Linux network stack in terms of throughput, packet loss, and packet rate but was not considerably better in terms of latency. When comparing the latency of bursty traffic for DPDK, io_uring, and the standard Linux network stack, it was shown that the kernel-based alternatives were better able at handling traffic over their maximum performance than DPDK, thus it may offer better scalability. After tuning the Linux kernel network parameters it was concluded that tuning may impact the performance network metrics of an application using io_uring. We conclude that io_uring shows some promising results compared to the standard Linux network stack, but is not yet able to compare with DPDK in network performance. The development of io_uring is ongoing and it may improve further in the future.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)