We have a new vSphere/ESXi host, and I have been noticing that the guest CPU activity is often far below the host CPU activity. Here is a representative screen shot from webgui:
As you can see, CPU 0 & 1 are at around 40-41%, while the combined guests are 26%. While this is not yet a problem, as this server grows and sees more usage, this will become a problem. I'd like to solve it before then.
From the notes below, Guest #1 is the only that is actively in use. Perhaps there is something in its configuration that is leading to over-consumption of the host CPU...?
The hardware / basic setup is below:
Running ESXi 6.5.0 U1 build 5969303
System Board: Supermicro SYS-1029P-WTR
CPU: (2x) Intel Xeon Gold 6144 (8 physical cores each, 16 hyper-threaded)
Memory: 192 GB memory
Storage: (2x in RAID-1) 1.6 TB SAS SSD via LSI 9361-8i, configured in single datastore
Network: Single 10G network card, used for both management and guests
Currently only three guests. All have the guest-tools installed and running.
#1 Win 2012 R2
#2 Win 2016
Guest #1 was originally bare-metal, and was P2V using VMWare's tools. It is used as a Remote Desktop Server. It sees spurts of CPU activity, and is not disk or network bound. It is allocated 28 vCPU's, 64 GB memory, 200 GB disk in a thick-provision.
Guest #2 is a new VM, and is currently in pre-production. It is allocated 8 vCPU's, 64 GB memory, 200 GB disk in a thick-provision.
Guest #3 was originally bare-metal, and was P2V using VMWare's tools. It is lightly utilized by our phone system for admin purposes. It sees little activity for CPU, disk or network. It is allocated 2 vCPU's, 4 GB memory, 220 GB disk in a thick provision.
Thank you in advance.
After testing various settings, I finally reduced the core-count to 16 (2-sockets, 8 cores per socket). With this configuration, when VM #1 has CPU usage at 40%, the host system shows CPU usage at 40%. No more mystery overhead.
This leads to a follow-up question:
Does VMWare require me to base guest vCPU count on base-2 (2^x)? Or, does it require me to base vCPU count on the host architecture's physical CPU core count (if the host has 8-core CPU's, the guest should be multiples of 8)? Or is something weird going on here?