Delay-aware network I/O virtualization for cloud computing

Luwei Cheng · 2015

Cloud datacenters are largely adopting virtual machines (VMs) to provide elastic computing services. As many cloud applications are communication-intensive, such as distributed data processing and web services, satisfactory network performance is critical to guarantee the service quality. In virtualized environments, a major problem is that the end hosts are separated by a virtualization layer and subject to the intervention of the hypervisor’s scheduling. Since the scheduling delays due to CPU sharing are commonly from tens of milliseconds to over one hundred milliseconds, when they are added to packet processing, network performance can be seriously degraded. To tackle this problem, prior works focus dominantly on modifying the hypervisor scheduler to hide the virtualization reality by reducing the delays as much as possible. However, this type of approaches brings many other problems, such as increased VM context switches and more complicated CPU resource allocation. This thesis tries to look at the problem from a different but simpler angle: we let the guest operating system (OS) accept the reality that each virtual CPU (vCPU) can be suspended and resumed at any time, and then think about how to refactor the network I/O subsystem to automatically tolerate such scheduling delays. In general, network I/O processing in the kernel includes two layers: protocol layer and interrupt layer. Our study shows that both layers are very sensitive to VM scheduling delays, and therefore must be redesigned accordingly. First, in the protocol layer, we propose a paravirtualized approach to help TCP counteract the distortion of congestion control caused by the hypervisor scheduler. Second, in the interrupt layer, for SMP-VMs that have multiple vCPUs, we propose a method to dynamically migrate interrupts from a preempted vCPU to a running one whenever it is possible, so that the delays will not be propagated to the protocol layer. Experiments with our prototypes in Xen/Linux show that our approaches can significantly improve the network throughput and responsiveness.

Read the paper · More papers on PaperTik