Sometimes we will get a question from our Customers about the representation of Host CPU Utilization % values in both VMTurbo Operations Manager and vCenter, where at first glance they appear off, and then the question is "which is correct"?
The answer is "both are" but the difference is the consideration of CPU Hyper-threading, and the influence on the Effective CPU Capacity of the Host. Let's explore in more detail.
Let's look at the 1 Day Summary of our host vmturbocloud1 first in vCenter's Performance Monitor Overview:
Now let's look at this same Host for the same period in VMTurbo's Operations Manager:
Data intervals and the fact that in VMTurbo you are seeing averages and peaks aside, you will see that VMTurbo is reporting the CPU Utilization % as being exactly HALF of what vCenter is reporting. How is that?
VMTurbo Out of The Box will identify if the Host has hardware that supports Hyper-threading and if Hyper-threading is set to Active. If active, we will adjust the Host CPU Capacity to be 2x that of the Physical Capacity, to reflect that the Host has the ability to run multiple threads on each core and increasing processor throughput to as much as 200%. For more information on Hyper-threading check out these articles: Hyper-threading - Wikipedia, the free encyclopedia and Intel® Hyper-Threading Technology
Since utilization is computed as usage / capacity, we have proof of the way the two solutions report CPU Utilization by looking at Physical Capacity vs Effective Capacity. The same host in vCenter shows 2 sockets, 8 Cores, and there are 16 Logical Processors because you can see that Hyperthreading is Active.
vCenter sees the Capacity of this Host to be 18.13 GHz (8 CPUs x 2.27 GHz/CPU), and does not represent the Logical Capacity:
In VMTurbo, when you view the Resources Table for the Host, you will see the capacity to be double that which is reported by vCenter: 36.26 GHz which is the logical processor capacity x GHz (16 CPUs x 2.27 GHz/CPU):
This means that the Actions driven by VMTurbo will account for the additional CPU processing provided by Hyper-threading, in addition to the way that CPU Utilization is being reported.
Would you like to see the actual used values? Then you can view Used values by leveraging the Usage widget or look at the PM Group level views, and click "Show Used":
What if you do not want VMTurbo to account for Hyper-threading? Then you can make this change in the Policy tab, at either the Global Level (Policy -> Analysis) or at specific Host Group levels like a cluster (Policy -> Analysis -> Host) by selecting "Ignore Hyperthreading", check the Value and then click Apply. Changing this value does require a restart of the Tomcat service to take affect.
NOTE: If the Host does hyperthread, then you will see CPU Utilization values in both vCenter and VMTurbo Ops Manager report >100%.
Global Setting Screenshot:
Host Group Level Screenshot: