DRS Fails to Migrate VMs due to maxVmsPerIteration Configuration
search cancel

DRS Fails to Migrate VMs due to maxVmsPerIteration Configuration

book

Article ID: 448240

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Mware vSphere DRS may fail to migrate virtual machines (VMs) even when ESXi hosts reach critical resource thresholds (e.g., CPU > 90%, Memory > 100%). This results in a persistent cluster imbalance and potential performance degradation for workloads on over-utilized hosts.

  • Symptoms: Cluster remains imbalanced despite Fully Automated DRS settings.
  • Logs: vpxd.log shows limited VM evaluation during DRS intervals.
  • Configuration: The DRS advanced parameter maxVmsPerIteration is set to a low value (e.g., 10).

Environment

vSphere 8.x
vSphere 9.x

Cause

The use of the advanced parameter maxVmsPerIteration restricts the number of virtual machines DRS can scan and score during its 5-minute evaluation cycle. When set significantly lower than the default (256), DRS cannot evaluate enough of the workload to identify optimal migration candidates, leading to a lack of movement despite host-level resource pressure.

DRS calculations for migration are based on the number of VMs it is permitted to iterate through. This limit is divided across available hosts. If the VMs scanned do not meet the specific cost-benefit threshold for a migration at that moment, DRS will perform no actions until the next iteration, effectively ignoring the rest of the cluster's population.

Resolution

  1. Log in to the vSphere Client.
  2. Navigate to the Cluster > Configure > vSphere DRS.
  3. Click Edit and select Advanced Options.
  4. Locate the parameter maxVmsPerIteration.
  5. Delete the parameter or set it back to the default value of 256.
  6. Click OK.