Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

Balloon driver retains hold on memory causing virtual machine guest operating system performance issues (1003470)

Details

  • Balloon driver retains hold on memory, causing guest operating systems to start using swap space
  • Virtual machine guest operating systems experience performance issues or failure


Solution

This issue is caused by a discrepancy between a virtual machine's memory allocation and reservation settings.

By default, a virtual machine's Resources > Memory > Limit > Unlimited box is selected, allowing the virtual machine full use of its allocation. Migrating a virtual machine from ESX 2.x to 3.x or 4.x may cause a carry-over of memory reservation that is smaller than the virtual machine's allocated memory (likely a customer-specific setting).
 
The variables for comparison in the .vmx files are memsize and sched.mem.max .

To check the .vmx values for the Virtual Machines:
  1. SSH to the host(s)
  2. Run this command to list the variables for comparison:
    • All versions:

      egrep "memsize|sched.mem.max" /vmfs/volumes/*/*/*.vmx | awk -F/ '{print $6}' | more

      Note: This command can be run on any version but will not be allowed to access a Virtual Machine's .vmx file if it is powered on and running on another host.

    • In ESX 3.x/4.x:

      for VMX in `vmware-cmd -l`; do echo $VMX:; egrep "memsize|sched.mem.max" $VMX; done;


      Note
      : This is useful to limit the list of VMs to the one host you are connected to via SSH.

    • In ESXi 5.0:

      vm-support -V|sed 's/(Running)\|\|(Registered)//g'|xargs egrep "memsize|sched.mem.max"|more

      Note: This is useful to limit the list of VMs to the one host you are connected to via SSH.
If sched.mem.max is smaller than memsize, the balloon driver can start consuming memory (especially if the guest operating system application has periodic bursts of memory usage). However, this setting can cause the balloon driver to retain its hold on memory. If the guest operating system requires memory that is made unavailable by the balloon driver, the guest operating system starts using swap memory instead, which slows it down considerably.
 
To force the balloon driver to release its hold on memory and prevent the guest operating system from using swap space, use one of these options:
  • Set the value of sched.mem.max to the allocated memory or greater.
  • Select the virtual machine's Resources > Memory > Limit > Unlimited box.
  • Migrate the virtual machine to another host.
Note: These changes do not require a restart of the virtual machine.

Update History

02/13/2012 - Added commands in Step 2 10/15/2012 - Added Migrate the virtual machine to another host. 10/08/2013 - Added vCenter Server 5.1 and 5.5; added ESXi 5.1 and 5.5

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.

Feedback

  • 18 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (4000 or fewer characters)
  • 18 Ratings
Actions
KB: