Check out the new USENIX Web site. [Next] [Up] [Previous]
Next: Simplified Virtual Ethernet Up: Scale, Performance, and Simplicity Previous: Batched, Asynchronous Interrupts

Idle-with-timeout Instruction

To measure the benefit of the idle-with-timeout virtual instruction, we compared the performance of web server VMs serving 100KB documents across in two scenarios. In the first scenario, the VMs exploited the timeout feature: a guest OS with no schedulable threads invokes the idle-with-timeout instruction with a timeout value set to the smallest pending TCP retransmission timer. In the second scenario, VMs did not use the timeout feature, idling only when there were no schedulable threads and no pending TCP retransmission timers.

The performance difference was substantial: Figure 5 shows that as the number of VMs scales up, overall performance drops by more than a factor of two without the timeout feature. The precipitous drop in performance for small numbers of VMs happens because the entire offered load is focused on those few VMs, ensuring that all of them have active connections; an active connection means that retransmission timers are likely pending, preventing the VM from idling. As the number of VMs grows, the same aggregate workload is spread over more VMs, meaning that any individual VM is less likely to have active connections preventing it from idling. This results in an easing off of additional overhead as the system scales.

Figure 5: Idle-with-timeout benefits: idle-with-timeout leads to higher performance at scale, when compared to an idle instruction with no timeout feature.

 

In general, a timeout serves as a hint to the isolation kernel; without this hint, the kernel cannot determine whether any software timers inside a VM are pending, and hence will not know when to reschedule the VM. As a result, without the timeout feature, a VM has no choice but to spin inside its idle loop to ensure that any pending software timers fire.


[Next] [Up] [Previous]
Next: Simplified Virtual Ethernet Up: Scale, Performance, and Simplicity Previous: Batched, Asynchronous Interrupts
Andrew Whitaker 2002-10-07