AW: Vmware ESXi (3.5) and RHEL (5.1) : Timekeeping Woes

Dirk Heindel Dirk.Heindel at
Tue Sep 29 05:14:17 CDT 2009

The "Swapped Target" means what the ESX wants do swap. "Swapped" means what currently is swapped.
In your example with the migration, the "Swapped Target" will be zero but the "swapped" will be nonzero.

Von: Roehrig, Jack (John) [mailto:Jack.Roehrig at]
Gesendet: Montag, 28. September 2009 18:48
An: Dirk Heindel; linux-poweredge at
Betreff: RE: Vmware ESXi (3.5) and RHEL (5.1) : Timekeeping Woes

If you see a "Swapped Target" non-zero and ballooned zero, your machine may have begun swapping on an ESX host with insufficient memory and migrated to an ESX host with sufficient memory. After the migration on ESX 3.5, the memory written to disk is not swapped back into physical RAM immediately.


From: linux-poweredge-bounces at [mailto:linux-poweredge-bounces at] On Behalf Of Dirk Heindel
Sent: Monday, September 28, 2009 2:56 AM
To: linux-poweredge at
Subject: AW: Vmware ESXi (3.5) and RHEL (5.1) : Timekeeping Woes

Sorry for the late response....

About memory on ESX servers...

VMkernel swapping occurs if there is no other way to get physical memory. A possible other way is the use of the vmmemctl driver aka Ballooning-Driver that is delivered with the VMware-Tools. If there is not enough physical memory on the ESX available, the vmkernel tries to retrieve some memory by requesting memory from Guest-OS through the Ballooning-Driver inside VMs. To say it very simple: The ballooning driver behaves like a normal application, that requests memory from OS. The difference to normal application is, that the Ballooning driver request non-pageable memory from the (Guest-)OS. The received memory will then be "forwarded" and used by the vmkernel for other purposes (e.g. other VMs).
If the Guest-OS has not the requested amount of memory available, it usually will swap some pages to it own OS-pagefile, like it would do, when you start a lot of big applications.
The ballooning driver can request up to 65% of virtual machines memory. This is the default. You can increase this up to 75% by changing the advanced settings.
This limit exists because a OS cannot swap out itself.
If the ESX still needs more memory, vmkernel-swapping takes place. This swapping is done by the vmkernel and not by Guest-OS. VMkernel picks some pages and will write these pages to vmkernel-swap-file (*.vswp), which was created and allocated at the starttime of the VM.
The size of the swap file will be the difference between reserved memory for the VM and configured memory.
If you configure a memory reservation for a VM, the VM has the guarantee to use that amount of physical memory. That memory will never be "ballooned" or paged.
The use of vmkernel-swap is much more slower than doing ballooning (and maybe swapping to Guest-OS-pagefile/pagepartition), because the Guest-OS knows better what pages it could swap out and what pages it should leave in memory.

If there is no ballooning driver installed in the VM,  VMkernel-swapping takes place instead of ballooning. So be sure you have the VMwareTools including the vmmemctl installed in every Guest-OS.

To see the utilization of ballooning and swapping you can use vSphere Client (VI3: VI-Client) and use the performance charts. Select memory and in the "chart Options" select "Ballooned", "Ballooned Target", "Swapped" and "Swapped Target".
If you see on VM a "Swapped Target" which is nonzero and a "Ballooned" with zero, you probably don't have the VMware Tools installed or the tools are not running on that VM.
In normal circumstances a VMkernel-Swap should not happen (except for VMs, where no VMware-Tools are available).


Dirk Heindel,

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Linux-PowerEdge mailing list