This article includes four main sections:
To determine whether the poor performance is due to a CPU constraint:
esxtop
command to determine if the ESXi/ESX server is being overloaded. For more information about esxtop, see the Resource Management Guide for your version of ESXi/ESX:
load average
on the first line of the command output.%READY
field for the percentage of time that the virtual machine was ready but could not be scheduled to run on a physical CPU.To determine whether the poor performance is due to memory overcommitment:
esxtop
command to determine whether the ESXi/ESX server's memory is overcommitted. For more information about esxtop, see the Resource Management Guide for your version of ESXi/ESX:
MEM overcommit avg
on the first line of the command output. This value reflects the ratio of the requested memory to the available memory, minus 1.MEM overcommit avg
field reads 0. There is no overcommitment and no extra RAM is required.MEM overcommit avg
field reads 0.5. The RAM is overcommited by 50%, meaning that 50% more than the available RAM is required.esxtop
.MCTLSZ
value.MCTLSZ (MB)
displays the amount of guest physical memory reclaimed by the balloon driver.SWCUR
value.SWCUR (MB)
displays the current Swap Usage.To determine whether the poor performance is due to storage latency:
The device, \Device\ScsiPort0, did not respond within the timeout period.
esxtop
, look for a high DAVG latency time. For more information, see Using esxtop to identify storage performance issues for ESXi (multiple versions).iometer
command. For more information, see Testing virtual machine storage I/O performance for ESXi and Best practices for performing the storage performance tests within a virtualized environment.iometer
results for a VM to the results for a physical machine attached to the same storage.Network performance can be highly affected by CPU performance. Rule out a CPU performance issue before investigating network latency.
To determine whether the poor performance is due to network latency:
iperf -s
iperf.exe -c sqlsed -P 1 -i 1 -p 5001 -w 64K -f m -t 10 900M
VMware Skyline Health Diagnostics for vSphere - FAQ
See these resources for more information on the topics discussed:
For any performance-related issues, it is always recommended to check the output of the command esxtop real time and we can also run esxtop command in the batch mode
If all the above pointers are checked
Then additionally kindly check the events on the OS level
Run task manager or top command and check which process is utilizing more resources on the OS level.
Performance issues on a VM residing on any esxi host can be due to various reasons as mentioned below
1. Due to the high IOPs generated on the OS layer.
2. Due to the misconfiguration of the numbers of CPU and Cores per socket
3. Overprovisioning on the ESXI hosts
4. Need to check on the values of RDY, CSTP, DAVG, KAVG, GAVG, CMDS/s, READS/s, WRITES/s, LAT/rd, LAT/wr, load average
5. Application-level issues may also cause performance-related issues on the VMs.
6. Check if the issue is happening intermittently or if it is continuos. We also need to check the pattern of the issue to determine the cause of the issue.
7. VM Backups may also create an issue and create performance issues.
8. Check if the VMs are running on a snapshot for a long time.
9. Check for any storage or network-related issues.
Kindly reference this below article for esxtop and its values
https://www.virten.net/vmware/esxtop/