KBP: Kernel Enhancements for Low-Latency Networking without Application Customization in Virtual Server
Kei Fujimoto, Kenichi Matsui, Masayuki Akutsu · 2021
Packet processing on commodity hardware is a cost-efficient and flexible alternative to specialized networking hardware. However, virtualizing dedicated networking hardware as a virtual machine on a commodity server results in performance problems, such as longer latency and lower throughput. This paper focuses on obtaining a low-latency networking system in a virtual server. We reveal mechanisms that cause millisecond-scale networking delays in a virtual server through a series of experiments. To eliminate such delays, we designed and implemented the kernel busy poll (KBP), which achieves three goals: (1) microsecond-scale tail delays and higher throughput than conventional solutions are achieved in a virtual server, (2) application customization is not required, so applications can use the POSIX sockets application program interface, and (3) KBP software does not need to be developed for every Linux kernel security update. The KBP has a kernel thread that constantly checks for the arrival of incoming network packets without being interrupted and immediately transfers them to a kernel network protocol stack. Evaluation results indicate that the KBP achieves microsecond-scale tail delays and reduces maximum round-trip latency by more than 98% and achieves up to about three times the throughput compared with existing NAPI and Open vSwitch with the Data Plane Development Kit (OvS-DPDK).