Virtual Machine performance charts for CPU Usage metrics in VM's displays a different value in than in Guest Operating System. For example a VM will show CPU Usage MHz @ 70% however inside vm CPU Usage in MHZ will be @ 40%.
ethernetX.ctxPerDev = "1"
sched.cpu.latencySensitivity.sysContexts = "<no of threads>"ESXi will spawn multiple worldID in behalf of the VM .Most of the worldID's are not CPU intensive and they will not reflect CPU usage.
sysContext and CtxPerDev are processes that help the ESXi to accelerate the packet handling.2x VCPU with 2x Nics
VCPU 1 usage is 40% and VCPU 2 usage 40% = 40 + 40 = 80%
Nic1 usage is 40% and Nic 2 is 20% = 40 + 20 = 60%
Total CPU usage = 140 / 2(vcpus) This issue is resolved in vSphere 7.0 release. A new counter "cpu.usage.vcpus" is added 7.0 release that sums vCPU and does not include VMX CPU usage, effectively excluding the CPU overhead.
For earlier versions, use esxtop to determine the correct values. For more information about esxtop, please refer - Using ESXTop and Interpreting ESXTop Statistics .