Skip to main content

When ESX host reclaim memory?

This is really interesting and important question for the VMware professional. Who and when will host reclaim the memory, the answers follows:

VMKernel is responsible for the reclaiming the memory. VMKernel decides to reclaim the host memory based on their four states. ESX maintains the four memory states:

High @ 6% - No Action
Soft @ 4% - Ballooning
Hard @2% - Swapping + Ballooning
Low @1% - Swapping

ESX effectively supports 3 memory reclaim techniques such as:

1. Transparent Share Paging (TPS)
2. Ballooning
3. Host Swapping

Now, the ESX will decide which memory reclaims technique to be used at when. However, TPS is enabled by default and continuously running in the ESX host, it is not considered.

Let’s see the how memory state is calculated:

Memory State % = Physical Memory – Service Console Memory

When the memory state equals to high state (6%) or virtual machines use less than 94% of host memory, there won’t be any reclaim process invoked. When the memory state start to fall down, it will start to use the Ballooning mechanism to reclaim the memory. Ballooning will be started to use at soft state or 4% and if memory state is still further falls down to Hard state (2%), swapping will be used with addition of ballooning. Even the memory state drastically drops down to Low state (1%), swapping will be used as last resort and additionally blocks the execution of VMs that consume more memory than their target allocation.

Some situation, the ballooning will be kicked when memory state between hard and soft. Because, the balloon driver will take some time to identify the free pages and allocate them back to required state. This would help us to avoid the situation of soft or worse.

In certain scenarios, host memory reclaims can happen. Such as, if the VM has limit, the VMKernel tries to use host reclaim the memory using either ballooning or swapping even though the host memory has plenty of memory left to free.

How to check the memory state of the host:
 
Either remote SSH or Direct console to your ESX host and type “esxtop” then press “m” memory status:
 
 
 
 
 
 
Free state value can be configured by host attributes in ESX3.5. I am not seeing this attribute in ESX4.0 and later editions. I don’t know whether VMware hidden those attributes and replaced with different name. Anyway, the following screenshot taken from ESX3.5 host advanced configuration:

Comments

Graham said…
What about ESX/i 4.1 memory compression? Where does that fit?

Actuall I just answered my own question by reading this: http://www.gabesvirtualworld.com/memory-management-and-compression-in-vsphere-4-1/

For some reason, I still press 'publish comment'

:)
Shan said…
Thanks Graham, I am just gathering the more information about memory compression. I will write up article soon. Thanks for the link as well.

Popular posts from this blog

vCenter Reinstallation after 60-Days trial expires without losing Database Contents

Many of us still evaluating the vSphere and vCenter in our test environments. Sometimes, it takes more than 60 days to evaluate where trial edition expires.
We can't extend the trial edition in ESX host, either we have to reinstall it or license it. vCenter also have to follow the same way as ESX does. But, here we can keep old database contents as it is when you reinstall the vCenter software.

This document using vCenter 4.0 and SQLEXPRESS 2005 (built in) database. At the time of installation of vCenter 4.0, it installs SQLEXPRESS 2005 by default unless any other Database specified. Mostly, we are using built-in database is SQLEXPRESS 2005 for testing environment.
When you install vCenter 4.0, it installs SQLEXPRESS 2005 and creates a database called "SQLEXP_VIM". You can view this thru SQL Server Configuration Manager console.
Start à All Programs à Microsoft SQL Server 2005 à Configuration Tools à SQL Server Configuration Manager


Creating DSN

Create a System DSN for this d…

Set VLAN ID to IPMI Address in Nutanix

The IPMI is remote management interface like as HP iLO, DELL DRAC. During the Nutanix cluster deployment, it is not possible to mention the VLAN ID of the IPMI's IP Address. This need to be entered thru command line via ESXi host or Windows Hyper-V. This article talks about ESXi host only.

Login to ESXi thru SSH client. Run the following command to enter the VLAN ID (we assume that you already configured IP Address)

~ # /ipmitool lan set 1 vlan id 333

~ # /ipmitool lan print1
Set in Progress         : Set Complete Auth Type Support       : NONE MD2 MD5 PASSWORD  Auth Type Enable        : Callback : MD2 MD5 PASSWORD                          : User     : MD2 MD5 PASSWORD                          : Operator : MD2 MD5 PASSWORD                          : Admin    : MD2 MD5 PASSWORD                          : OEM      : MD2 MD5 PASSWORD  IP Address Source       : Static Address IP Address              : xx.xx.xx.xx Subnet Mask             : 255.255.254.0 MAC Address             : xx:xx:xx…

Changing Thin to Thick disk and vice-versa

You can change the existing Virtual Hard disks (VMware based) from Thick to thin and vice-versa. This can be achieved by either using VMotion/SVMotion or command line tool called "vmkfstools". Using VMotion/SVMotion is required a valid license. Select “Migrate” and choose “Change Datastore” and select the Disk format.

If you don’t have a VMotion/SVMotion license, use the following command to achieve the same.

From Thick to Thin:

vmkfstools –i "Thickdisk.vmdk" -d thin "Thindisk.vmdk"

It will start to clone to virtual hard disk in Thin Provision method. After completed, you can attach this disk with VM and power it on. If all looks good, you can delete the original thick disk from the data store.

Use the following command to see real-time usage of thin disk:

du –h "Thindisk.vmdk"

You can notice the big difference of disk usage between of Thin and Thick format disks.

From Thin to Thick:

vmkfstools –i "Thindisk.vmdk" -d zeroedthick "Thindisk…