If you use snapshots on virtual machines running on an ESX host, each snapshot delta disk is a COW (Copy On Write) disk. For each one in use by running virtual machines, their data structures take up ESX kernel memory. This allocation is known as the COW heap. This memory is used to store cached metadata, pointing to where in a VMDK or in a chain of VMDK files disk data to be accessed resides.
In ESX 3.5, the default COW memory heap is 32MB. As more snapshots are used by running virtual machines, particularly by virtual machines with large base disks, this COW memory heap may run low. When exhausted, virtual machines no longer power on.
The following ESX versions can have their COW heap manually increased:
- ESX 3.5.0 Update 1 with the patch ESX350-200803202-UG
- ESX 3.5.0 Update 2 or higher
- ESX 4.0 or higher
Notes:
- You do not automatically have to increase the COW memory heap allocation to its configurable maximum. You can double it to begin with, and see if this resolves the issue, unless you feel the ESX host has a lot of memory to spare.
- The ESX host must be rebooted for the changes to take effect.
To increase the COW Memory Heap allocation through VI Client:
- Open vCenter/VirtualCenter, and click on the relevant host.
- Click the Configurations tab.
- Under the Software section click Advanced Settings, and in the dialog that appears, click COW.
- Change the value of COW.MaxHeapSizeMB.
To increase the COW Memory Heap Allocation through the Service Console in ESX 3.5:
- Ensure that you are logged in as the root user.
- Run this command to get the current value:
esxcfg-advcfg -g /COW/MaxHeapSizeMB
Value of MaxHeapSizeMB is 32MB.
- Run this command to set the new value:
esxcfg-advcfg -s 64 /COW/MaxHeapSizeMB
Value of MaxHeapSizeMB is 64MB.
Note: ESX 3.5 default COW Memory Heap allocation is 32MB and the maximum is 192 MB.
To increase the COW Heap Memory Allocation through the Service Console in ESX 4.0:
- Ensure that you are logged in as the root user.
- Run these command to get the current value:
esxcfg-advcfg -g /COW/COWMaxHeapSizeMB
Value of MaxHeapSizeMB is 192 MB.
- Run this command to set the new value:
esxcfg-advcfg -s 256 /COW/COWMaxHeapSizeMB
Value of MaxHeapSizeMB is 256 MB.
Note: The maximum COW Memory Heap allocation is 256MB. For more information on COW Heap Value, see Setting COW heap values on Lab Manager (1009144).