DRS is a very powerful vSphere feature that has been around for years. It’s constantly monitoring host performance to ensure that VM demand is satisfied. When DRS determines that another host in a cluster could better suit a VM, a migration recommendation is generated, and the VM will vMotion to another host. DRS looks at several aspects to VM performance like CPU ready time, CPU utilization, memory active and memory swapped to make intelligent placement decisions.

DRS has historically been a black box though. This decision information can be ascertained by analyzing DrmDump files, but requires engineering support to decode and interpret them…until now.

DRS Doctor is a new fling that is aims to fix this, and allows the vSphere Administrator to diagnose DRS behavior without engineering support. This is great when you just want to dig in a little deeper and understand why DRS made a decision to move a virtual machine.

With DRS Doctor vSphere administrators can diagnose DRS behavior in VMware vCenter clusters using the command line. When run against a DRS enabled cluster, it records information regarding the state of the cluster, the work load distribution, DRS moves, etc., in an easy to read log format.

Using DRS Doctor vSphere Administrators get a better insight into DRS and the actions it performs. This is very useful when analyzing DRS actions and troubleshooting issues with very little overhead. This is also an easy way for support engineers to read into customer environments without having to rely on developers to debug DrmDump logs in order to troubleshoot simple DRS issues.

DRS Doctor connects to the vCenter server and tracks the list of cluster related tasks and actions. It also tracks DRS recommendations generated and reasons for each recommendation, which is currently only available in a hard-to-read format in DrmDump files. At the end of each log, it dumps the Host and VM resource consumption data to give a quick overview of cluster state. It also provides an operational audit at the end of each log file.


DRS Doctor records information about the state of the cluster, the advanced settings applied, the workload distribution, the virtual machine entitlements, performance demand, the recommended DRS moves, and more. Even better, DRS Doctor writes all this data into a log file that requires no special tools to read.

Requirements for DRS Doctor

  • Requires Python 2.7.6 or higher.
  • Requires Python modules ‘pyyaml‘ and ‘pyvmomi‘.

Note: The VMware vSphere API Python Bindings can be found here.

For Python versions less than 2.7.9, the pyVmomi version should be 5.5 (pip install pyvmomi== If using Python 2.7.9+ the version 6.0 of pyvmomi can be used.

For certificate validation (SSL) support, Python 2.7.9 or above and pyVmomi 6.0 is required.

DRS must be in partially automated mode in order for DRS Doctor to work. If your cluster is in fully automated mode, DRS Doctor will automatically change the mode to partially automated mode and apply the load balancing recommendations based on the threshold configured. (It will act just as it would in fully automated mode.)

Note: If you close DRS doctor you will need to ensure that the DRS automation settings get reverted to fully-automated mode.

Try to run DRS Doctor in close network proximity to your vCenter Server