Skype for Business VMware CPU config
Official VMWare configuration document for Skype for business is based on vSphere 6.0
The document section 2.1.5:
Although Skype for Business Server 2015 is not a NUMA-aware application and performance tests have not shown any significant performance improvements by enabling vNUMA, the Windows Server 2012 OS is NUMA-aware, and Skype for Business Server 2015 (as an application) does not experience any performance, reliability, or stability issues attributable to vNUMA.
With version 6.5 things has changed slightly. And on the VMware blog configuration recommendations has been published
Rules of Thumb:
- While there are many advanced vNUMA settings, only in rare cases do they need to be changed from defaults.
- Always configure the virtual machine vCPU count to be reflected as Cores per Socket, until you exceed the physical core count of a single physical NUMA node OR until you exceed the total memory available on a single physical NUMA node.
- When you need to configure more vCPUs than there are physical cores in the NUMA node, OR if you assign more memory than a NUMA node contains, evenly divide the vCPU count across the minimum number of NUMA nodes.
- Don’t assign an odd number of vCPUs when the size of your virtual machine, measured by vCPU count or configured memory, exceeds a physical NUMA node.
- Don’t enable vCPU Hot Add unless you’re okay with vNUMA being disabled.
- Don’t create a VM larger than the total number of physical cores of your host.
For Skype point 2 is very important.
Quite often the VM is configured with default setting like where the number of cores in the socket is not changed 8 sockets x 1 core.
Where it may not be an issue with most of the applications, it may have performance impact for Skype for Business real time media (audio and video).
Another parameter worth to check is the CPU Ready
VMware CPU Ready diagram is the percentage of time that the virtual machine was ready but could not be scheduled to run on a physical CPU. And it can be used to analyse the delays that VM has with access to physical CPU.
Although VMware statement is that the under normal operating conditions, this value should remain under 5% per vCPU. The percentages as close to 0% as possible will guarantee the best performance.
Otherwise, you’ll have some performance affect, although it might not be very bad. But with Skype not bad may be bad enough to affect user experience of the call.
Ready values of 5% or more per vCPU should already be seen as warning. Ready values of 10% or more per vCPU should already be seen as an error and the performance situation can get really nasty. Very high Ready times for the vCPU can even trigger application errors and crashes. Again, very hard to find when just looking inside of the VM guest. It’s very important to watch the outside VMkernel metrics using ESXtop.
Resources:
Virtualizing Microsoft Skype for Business Server on VMware vSphere
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/business-critical-apps/exchange/vmware-skype-for-business-on-vmware-vsphere-best-practices-guide.pdf
CPU config https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vnuma-rightsizing-rules-of-thumb.html
Troubleshooting VM performance https://kb.vmware.com/s/article/2001003
https://blog.heroix.com/blog/vmware-vcpu-over-allocation