Knowledge Base
The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides

|
Virtual machine CPU usage spikes and remains abnormally high after vMotion in a VMware DRS enabled cluster (1003638)
Details
Note: This issue is resolved in VirtualCenter 2.5.0 Update 2.
Solution
For VirtualCenter 2.5, this cap is not increased to satisfy the virtual machine's steady-state demand as expected. Therefore the virtual machine operates with an overhead memory that is less than its desired size, which in turn may lead to higher observed virtual machine CPU usage and lower virtual machine performance in a VMware DRS-enabled cluster.
Diagnosing the issue
To diagnose the issue:- Log into VirtualCenter as an administrator using the Virtual Infrastructure Client.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Disable VMware DRS.
- Click OK and wait for 1 minute.
- In the Virtual Infrastructure Client, note the virtual machine's CPU usage in the Performance tab and the virtual machine's memory overhead in the Summary tab.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Re-enable VMware DRS.
- Use vMotion to migrate a problematic virtual machine to another host.
- Note the virtual machine CPU usage and memory overhead on the new host.
- Disable VMware DRS on the cluster again as noted above, and wait for 1 minute.
- Note the virtual machine CPU usage and memory overhead on the new host.
You do not need to disable DRS to work around this issue.
Working around the issue prior to VirtualCenter 2.5 Update 1
To work around this issue:
- Log into VirtualCenter as an administrator using the Virtual Infrastructure Client.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Ensure that VMware DRS is shown as enabled. If it is not enabled, click the checkbox to enable VMware DRS.
- Click OK.
- Click an ESXi/ESX host from the Inventory.
- Click the Configuration tab.
- Click Advanced Settings.
- Click the Mem option.
- Locate the
Mem.VMOverheadGrowthLimitparameter. - Change the value of this parameter to
5and click OK.
Note: By default, this parameter is set to-1.
Fixing multiple ESXi/ESX hosts
If this parameter needs to be changed on several hosts (or if the workaround fails for the individual host), use this procedure to implement the workaround instead of changing every server individually:
- Log into the VirtualCenter Server Console as an administrator.
- Make a backup copy of the
vpxd.cfgfile. This file is typically located in:C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\vpxd.cfg - In the
vpxd.cfgfile, add this configuration between the<vpxd>and the</vpxd>tags:<cluster>
<VMOverheadGrowthLimit>5</VMOverheadGrowthLimit>
</cluster>
This configuration provides an initial growth margin in MB-to-virtual machine overhead memory. You can increase this amount to larger values if doing so further improves virtual machine performance. - Restart the VMware VirtualCenter Server service.
Note: When you restart the VMware VirtualCenter Server service, the new value for the overhead limit is pushed down to all the clusters in VirtualCenter.
Note: If the new values are not pushed down to the ESXi/ESX hosts within 10 minutes:
- Log into VirtualCenter as an administrator using the Virtual Infrastructure Client.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Disable VMware DRS.
- Click OK. Wait for the DRS-disable task to complete.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Enable VMware DRS.
- Click OK.
Working around the issue if it persists after upgrading to VirtualCenter 2.5 Update 1
After applying VirtualCenter 2.5 Update 1, it has been reported that under certain circumstances this behavior may persist.
To work around the issue:
Note: The previous steps also work, however this method is easier to implement and works for any ESXi/ESX host that is added to the DRS cluster.
- Log into VirtualCenter as an administrator using the Virtual Infrastructure Client.
- Right-click your cluster from the inventory.
- Click Edit Settings.
- Click VMware DRS (if it is not enabled, enable it).
- Click Advanced Options.
- Add
MemOverheadGrowthwith a value of4. - Click OK to close the Advanced Options.
- Click OK to close the cluster configuration.
A permanent fix for this behavior is included in VirtualCenter 2.5 Update 2.
Verifying the workaround
To verify that the setting has taken effect:
- Log into your ESXi/ESX host's service console as root, either via an SSH session or directly from the console of the server.
- Run the command:
less /var/log/vmkernel- If the setting was successfully changed, you see a message similar to:
vmkernel: 1:16:23:57.956 cpu3:1036)Config: 414: VMOverheadGrowthLimit" = 5, Old Value: -1, (Status: 0x0)
No further action is required. - If changing the setting was unsuccessful, you see a message similar to:
vmkernel: 1:08:05:22.537 cpu2:1036)Config: 414: "VMOverheadGrowthLimit" = 0, Old Value: -1, (Status: 0x0)
- If the setting was successfully changed, you see a message similar to:
Note: If you see a message indicating that the limit changed to
5 and then changing it back to -1, the fix has not been successfully applied. To resolve this:- Create a new cluster and move the ESXi/ESX hosts to this cluster.
- Verify whether the fix has been implemented successfully.
Tags
Request a Product Feature
To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.
Actions
KB:
- Updated:
- Categories:
- Languages:
- Product Family:
- Product(s):
- Product Version(s):

