This article is meant to provide guidance on which steps to take when experiencing virtual machine being unresponsive, in order to narrow the issue down further and collect the necessary information to allow analyzing what caused the behaviour.
Note: A major part of the required information consists of dynamic data (as opposed to static logs) which will only be available while the virtual machine is still in the unresponsive state, and therefore needs to be collected immediately, before steps are taken to remediate the VM and/or reporting the issue to the Broadcom support team.
# vmdumper -l | grep <vm_name> | awk '{print $1}'Note it down, it will be needed in the next and later steps.# vmdumper <WID> samples_onWait for 4 to 5 minutes before moving on to the next step, to allow a reasonable number of sample traces being logged to the
vmware.log.# esxtop -ba -d 2 -n 60 | gzip -9c > /vmfs/volumes/<datastore>/perfstats_$(date +"%Y_%m_%d_%I_%M_%p").csv.gzThis runs for 2 minutes and collecting 1 set of all performance counters every 2 seconds. Wait until this has finished, then move on to the next step.
<vm_name>-###.vmss file, but for older virtual hardware versions (below 11) there will also be a <vm_name>-###.vmem file.# cd /vmfs/volumes/<datastore>/<vm_folder>/The next step depends on if the virtual machine is encrypted or not:
# cp <vm_name>*.vmss <vm_name>.vmss.pck
# cp <vm_name>*.vmem <vm_name>.vmem.pck
# crypto-util encobj decrypt --related <vm_name> <vm_name>*.vmss <vm_name>.vmss.pck
# crypto-util encobj decrypt --related <vm_name> <vm_name>*.vmem <vm_name>.vmem.pck
Note: For more information, refer to Unable to convert a Windows 11 VM snapshot to a memory dump.
# md5sum <vm_name>.vmss.pck > <vm_name>.vmss.md5sumIf memory corruption is found while analyzing the VM memory, this will allow confirmation if the corruption was already present or if there was damage to the files during transfer.
# md5sum <vm_name>.vmem.pck > <vm_name>.vmem.md5sum
# tar czf <vm_name>_suspend.tgz <vm_name>.vmem.pck <vm_name>.vmss.pck <vm_name>.vmss.md5sum <vm_name>.vmem.md5sumand download the archive via SCP or using the datastore browser.
# vmdumper -l | grep <vm_name> | awk '{print $1}'Once again, note down the WID.# vmdumper -l | grep <vm_name> | awk '{print $1}'
# vmdumper <WID> unsync
# vmdumper <WID> sync
# vmdumper <WID> vmx
# vmdumper <WID> vmx_forceThese allow to isolate if the VMX world (aka the virtual machine process itself) might have been unresponsive and if so, what caused it.vmdumper command has finished running, export a log bundle of the ESXi host. See Collecting diagnostic information for VMware ESXi using vSphere Client for more information.