A Software Approach of Controlling the CPU Resource Assignment in Network Virtualization

Shin MURAMATSU  Ryota KAWASHIMA  Shoichi SAITO  Hiroshi MATSUO  Hiroki NAKAYAMA  Tsunemasa HAYASHI  

Publication
IEICE TRANSACTIONS on Communications   Vol.E98-B   No.11   pp.2171-2179
Publication Date: 2015/11/01
Online ISSN: 1745-1345
Type of Manuscript: Special Section PAPER (Special Section on Network Systems for Virtualized Environment)
Category: 
Keyword: 
software-defined networking,  network virtualization,  network functions virtualizaion,  virtual switch,  Receive Side Scaling (RSS),  

Full Text: PDF(2.8MB)
>>Buy this Article


Summary: 
Many public cloud datacenters have adopted the Edge-Overlay model which supports virtual switch-based network virtualization using IP tunneling. However, software-implemented virtual switches can cause performance degradation because the packet processing load can concentrate on a particular CPU core. As a result, such load concentration decreases and destabilizes the performance of virtual networks. Although multi-queue functions like Receive Side Scaling (RSS) can distribute the load onto multiple CPU cores, they still have performance problems such as IRQ core collision between priority flows as well as competitive resource use between host and guest machines for received packet processing. In this paper, we propose Virtual Switch Extension (VSE) that adaptively determines CPU core assignment for SoftIRQ to prevent performance degradation. VSE supports two types of SoftIRQ core selection mechanisms, on-the-fly or predetermined. In the on-the-fly mode, VSE selects a SoftIRQ core based on current CPU load to exploit low-loaded CPU resources. In the predetermined mode, SoftIRQ cores are assigned in advance to differentiate the performance of priority flows. This paper describes a basic architecture and implementation of VSE and how VSE assigns a SoftIRQ cores. Moreover, we evaluate fundamental throughput of various CPU assignment models in the predetermined mode. Finally, we evaluate the performance of a priority VM in two VM usecases, the client-usecase which is receive-oriented and the router-usecase which performs bi-directional communications. In the client-usecase, the throughput of the priority VM was improved by 31% compared with RSS when the priority VM had one dedicated core. In the router-usecase, the throughput was improved by 29% when three dedicated cores were provided for the VM.