2

I have an ESXi 5 server running on a 2-processor, 12-core system with hyperthreading enabled. So: 12 physical cores, 24 logical ones. On this server are 4 Windows 7 VMs, each configured for 2 processors, each running VMware Tools.

Looking at my stats in vSphere, my "core utilization" is constantly maxed out. Yes, these machines are working hard, but only 8 cores have been allocated. How is this possible? Should I look into reducing the processor count per machine as in this post: VMware ESX server?

I checked to ensure that hardware virtualization is enabled in the BIOS of the machine (a DELL R410). I've also started reading up on configuration, but being a newbie there's a lot of material to catch up on. It also seems I should only bother with advanced settings and pools if I'm really pushing the load, and I don't think that I should be pushing it with so few VMs.

I suspect that I have some basic, incorrect configuration setting, but it's also possible that I have some giant misconceptions about virtualization. Any pointers?

EDIT: Given the responses I've gotten so far, it seems that this is a measurement problem and not a configuration problem, making this less critical. Perhaps the real question is: How does the core utilization of the server reach a higher percentage than all individual cores' core utilization, and given that this possibility makes the metric useless for overall server load, what is the best global metric for measuring CPU load on hyper-threaded systems?

4
  • What version of ESX?
    – EEAA
    Mar 20, 2012 at 0:49
  • ESXi 5 (I added it to the original post, thanks)
    – Sam
    Mar 20, 2012 at 0:54
  • Have you installed VMware Tools into the guest OS (Win7)? Mar 20, 2012 at 0:58
  • Yes, that as well. I have to get better at this specifying my environment thing.
    – Sam
    Mar 20, 2012 at 1:03

2 Answers 2

0

Overall host core utilization metric will often hit 100% on lightly loaded hosts. I don't have any document that would confirm it, but my hunch is that this metric is based on whether or not any core on the host is used at any given moment.

Instead, select all numbered objects in the Customize Performance Chart dialog box. Those are individual cores, and the results will reflect their actual load.

Better yet, ignore this metric altogether if you want to see overall host load. The Usage value, which is the default in the performance graph for CPU, will tell you exactly what you're looking for.

3
  • When hyperthreading is enabled, it seems like CORE UTIL is the appropriate metric. See: communities.vmware.com/docs/DOC-9279, section 2.3. That being said, it looks like if I look at the core utilization for individual cores, they max out around 80%. That doesn't seem to match what the linked document states for CORE UTIL: "The percentage of CPU cycles per core when at least one of the PCPUs in this core is unhalted, and its average over all cores. It's the reverse of the "CORE IDLE" percentage, which is the percentage of CPU cycles when both PCPUs in this core are halted."
    – Sam
    Mar 20, 2012 at 1:40
  • If you have 12 cores and allocate 8 cores total to VMs that run at 100% CPU utilization, the 80% result is about right (allowing for hypervisor overhead). I'm not sure what your objection is. And note that your original issue was with the metric as applied to the host as a whole, which is not discussed in the referenced document, and I can only reiterate that the number you see is pretty much useless. Look at CPU Usage value, like I and ewwhite suggested previously. Hyperthreading is a red herring, you should keep it enabled. Mar 20, 2012 at 15:36
  • I'm not objecting to the 80%, I'm objecting to every core being at about 80%, but the overall number being reported at 100%, which is what threw me off (it's useless, you guys are right). I just won't look at it any more. I think this answers my question.
    – Sam
    Mar 20, 2012 at 17:39
1

Even though you have 2 x 6-core CPUs with Hyperthreading enabled, I think this is a matter of how you're monitoring the system. Are you doing this from the vSphere client or are you using esxtop? See this post on the VMWare forums.

Also, if you're looking at esxtop, see the CORE UTIL portion of this VMWare document.

If hyperthreading is enabled, the CORE UTIL% field will also appear, which displays only the utilization percentage of each core and not the individual threads. So if a host has eight cores and 16 threads, it displays only the eight-core values, and if only one thread of a core is at 100% utilization, the core will show as 100% utilized. This gives you a view of core utilization as a whole regardless of thread utilization.

Are you saying that the machines are working hard? What does the CPU Usage on the vSphere client console look like? How does the load vary with Hyperthreading off?

enter image description here

1
  • I'll see what turning hyperthreading off will do. I am using vSphere and checking out the "Core Utilization" metric, which I believe corresponds to the CORE UTIL% metric in esxtop.
    – Sam
    Mar 20, 2012 at 1:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .