NetAP: Adaptive polling technique for network packet processing in virtualized environments

Hyunchan Park, Juyong Seong, Munkyu Lee, Kyungwoon Lee, Cheol Ho Hong

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

Abstract

In cloud systems, computing resources, such as the CPU, memory, network, and storage devices, are virtualized and shared by multiple users. In recent decades, methods to virtualize these resources efficiently have been intensively studied. Nevertheless, the current virtualization techniques cannot achieve effective I/O virtualization when packets are transferred between a virtual machine and a host system. For example, VirtIO, which is a network device driver for KVM-based virtualization, adopts an interrupt-based packet-delivery mechanism, and incurs frequent switch overheads between the virtual machine and the host system. Therefore, VirtIO wastes valuable CPU resources and decreases network performance. To address this limitation, this paper proposes an adaptive polling-based network I/O processing technique, called NetAP, for virtualized environments. NetAP processes network requests via a periodical polling-based mechanism. For this purpose, NetAP adopts the golden-section search algorithm to determine the near-optimal polling interval for various workloads with different characteristics. We implement NetAP in a Linux kernel and evaluated it with up to six virtual machines. The evaluation results show that NetAP can improve the network performance of virtual machines by up to 31.16%, while only using 32.92% of the host CPU time used by VirtIO for packet processing.

Original languageEnglish
Article number5219
JournalApplied Sciences (Switzerland)
Volume10
Issue number15
DOIs
StatePublished - Aug 2020

Keywords

  • Adaptive polling
  • Cloud computing
  • I/O processing
  • Virtualization

Fingerprint

Dive into the research topics of 'NetAP: Adaptive polling technique for network packet processing in virtualized environments'. Together they form a unique fingerprint.

Cite this