In ESXi 5.5 there was a latency sensitive feature added to the web client. This feature applies to individual virtual machines. It was specifically added for latency sensitive applications. VMware full recommendations for latency sensitive applications can be found here. There are four settings exposed in the web client for latency sensitivity each denotes a maximum latency in micro-seconds for CPU scheduling:
- Normal – Latency sensitive features are disabled and the normal setting for all virtual machines by default
- High – Feature is enabled
This left me with question related to the low and medium setting. Official documentation does not even mention them as options. I have requested they be documented in the future but what I can tell you is this:
- Low = worse than normal shares think of it as limits for latency sensitivity
- Medium = Not disabled and not fully enabled
End result don’t use Low or Medium you should be either normal or high today.
What does Enabled do?
Enabled latency sensitivity essentially gives exclusive access to physical resources, bypassing all virtualization layers and tunes network virtualization layer. Due to the bypass access to CPU the number of virtual CPU’s should not exceed the number of physical cores + 2 for VMkernel threads. The lack of CPU scheduling from the virtualization layer reduces latency on CPU operations even more than just CPU reservation can. The effects you can see in esxtop are 100% run for each vCPU of a VM.
Enabling the feature creates and automatic reservation for the full virtual machine memory.
Network frames will not be coalesced when enabled.
Don’t use this feature unless you really need the latency sensitivity. You should design clusters around latency sensitivity instead of using commodity clusters. The latency sensitive settings will not play with with others.