VMware Cloud Community
Joe1393
Enthusiast
Enthusiast

esxtop host CPU utilization significantly different than vSphere Client

I realize that there should be a difference between the raw esxtop data and vSphere Client however I’m seeing esxtop show me between 40% and 60% CPU utilization and vSphere Client showing me 70% to 90% utilization on my hosts.

Some info on my environment:

I am moving from our vSphere 5.1 environment to 6.0. They way I have chosen to do this is to deploy a new vCenter Server Appliance and manually move my hosts. My server environment was easy to move however this environment is Horizon View and you can’t just migrate pools, you have to recreate. My Horizon View version is 6.2, vCenter is 6.0, and hosts are 6.0. My desktops are simple, 1 vCPU each with 2GB of memory fully reserved. 90% of the desktops are linked clones with around 10% being what we call static or full individual system. I have 20 hosts that support roughly 1500 desktops. In 5.1 I could get roughly 80 desktops per host leaving me with an almost perfect N+1 environment. My hosts in the old 5.1 environment normally ran between 30% and 55% CPU usage with memory being my most constrained at around 60% to 70%. My hosts are all Auto Deploy using the same image. I ran into issues with vShield/Trend Deep Security with both 5.1 and 6.0 so I am unable to use a common host profile. However I am able to clone an existing host profile for a host I will be migrating, apply it and set an answer file. Then once I configure a Deep Security Appliance for that host I can update the host profile from the reference host (reference and applied host are the same) and I can be in compliance with the host profile. Not ideal but it still keeps my hosts consistent. I should mention that when the hosts join the vCenter Server for the first time they are not joined to the cluster at first. I only move them into the cluster once Deep Security has been setup. Once ready to join the cluster I put the host into maintenance mode, manually move it to the cluster, then take it out of maintenance mode. My main reason for that is so I don’t have a host in the cluster without virus protection and VMs being migrated to it. The cluster is configured with both HA and DRS. HA has been set with an admissions control policy of 5% for both memory and CPU to be reserved for spare capacity. Same setup as the old cluster.

I hope that helps to set the scene and I didn’t leave out some crucial information.

I know that HA and the admissions control with skew the resource utilization in the vSphere Client but 5% shouldn’t skew it that much and never looked that bad in 5.1. I should mention that my users are running fine and this in no way has affected production however I fear that on a busy day the admissions control will stop VMs from starting up when there are plenty of resources available. So far that has not happened.

I’m at a loss as to what could be doing this. I did, for a test, disable HA for a while but the utilization numbers in the vSphere Client didn’t change. My only guess is that something is being brought over in the Host Profile when I clone it that didn’t exist in 5.1. However I make so many changes with the host profile I have no idea where to start.

I’m hoping that someone out there has run across this or that I’m just missing something crazy obvious. Any help or suggestions would be awesome.

Thanks

0 Kudos
4 Replies
Kauy
VMware Employee
VMware Employee

Hello, Joe1393.

Which performance counters are you comparing in esxtop and vSphere Client?

Kauy Souza
0 Kudos
Joe1393
Enthusiast
Enthusiast

Well, in my old 5.1 environment I would watch PCPU UTIL% AVG number because it was always close to what I saw in vCenter.  I was doing the same with 6.0... however now that you ask that question I do see that the CORE UTIL% AVG number is closer to what the vSphere Client is showing.

0 Kudos
Kauy
VMware Employee
VMware Employee

When you have hyper-threading enabled each core has two PCPU (Which refers to a physical hardware execution context - not a physical CPU). So the CORE UTIL% and PCPU UTIL% may vary (See this nice document explaining esxtop counters). If hyper-threading is disabled the PCPU UTIL% and CORE UTIL% are the same.

I think CORE UTIL% might serve you. You might also check CPU Load Average which uses samples to show the average in different time frames.

Best regards.

Kauy Souza
0 Kudos
Joe1393
Enthusiast
Enthusiast

Maybe this was a change in 6.0 to use the CORE Util and not the PCPU Util.

(I tried to take these as close together as I could)

For my 5.1 host under a 5.1 vCenter server I see this:

5.1Capture1.PNG

5.1Capture2.PNG

Which is reflecting the PCPU Util not the CORE UTIL.

And for 6.0 host under a 6.0 vCenter server I see this:

6.0Capture1.PNG

6.0Capture2.PNG

Which is reflecting the CORE Util not the PCPU Util.

Maybe my hosts always ran like this but vCenter is just reporting differently between 5.1 and 6.0.

I now have a ticket open with VMware to see if someone can explain what I am seeing between the two versions.

0 Kudos