Scott Drummonds on Virtualization

Memory Compression


Steve Herrod’s keynote at Partner Exchange 2010 included a tantalizing slide on an upcoming memory maximization technology: memory compression.  A few of you have already seen the overview of this technology Kit Colbert and Fei Guo previewed it at VMworld 2009.   Today I want to tell you how this upcoming feature will help you pack even more virtual machines onto your existing servers.

To get the most out of your servers’ memory you have to over-commit it.  Go too far and the host will swap.  This fact is immutable in enterprise memory management.  Because rotating disks have seek times that are six orders of magnitude larger than memory, when your host swaps your applications’ performance suffers catastrophically.  Solid state drives (SSD) can mitigate the performance cost by reducing swap latency by a couple orders of magnitude.  But SSDs still have delays tens of thousands of times worse than memory.

VMware engineers have been working on a technology that we unofficially call on-demand memory compression (ODMC) or compression cache, depending on who you talk to.  The idea of ODMC is to avoid swapping by compressing a set of target pages to a special region.  We have measured the additional latency–the compression time–to be over a hundred times better than rotating disk latencies.  And this will decrease at CPU performance increases.

SSD devices will continue to play an important part in solving the performance problems of extreme memory over-commit because of the great volume of data they can serve at a speed much faster than rotating disks.  But it will be a secondary solution to the faster ODMC, which uses a small dedicated area of system memory.  VMware’s long-term prioritization for managing the most aggressively over-committed memory looks like this:

  1. Do not swap if possible.  We will continue to leverage transparent page sharing and ballooning to make swapping a last resort.
  2. Use ODMC to a predefined cache to decrease memory utilization.*
  3. Swap to persistent memory (SSD) installed locally in the server.**
  4. Swap to the array, which may benefit from installed SSDs.

(*) Demonstrated in the lab and coming in a future product.

(**) Part of our vision and not yet demonstrated.

The end goal of this prioritized use of different technologies is the reduction of the performance penalty of swap.  If VMware can reduce the penalty of swap, the virtual machines in extremely over-committed environments will not slow much when they need more memory than the host has available.  When this performance cost of swapping is reduced, you can safely drive your consolidation ratios even higher.

I cannot wait for the general availability of ODMC.  It is another technological accomplishment in a long line of innovation out of our phenomenal engineering organization.  At times I wonder when the last time another operating system software company introduced something really awesome to the industry.  But of course, I am biased.

19 Responses

This is interesting technology I hope a lot of clusters, which have memory as a limiting resource, can leverage. I hope the penalty of memory compression, if any, is minimal to non-existent.


  • Thanks for the post Scott, we can’t wait either 🙂
    BTW, do you know if it would be possible to force ODMC before ballooning (not disabling but really change order) to avoid inguest pressure ?

  • Very interesting stuff. Great if this will make swapping occur even less.

  • Another great memory management feature. Can’t wait to try it out. What would be interesting though would be having a mechanism to prioritise which servers get swapped first in an overcommited infrastructure.

  • […] Уже довольно давно была анонсирована технология on-demand memory compression (ODMC – это пока рабочее название), о которой неплохо рассказано на ресурсе vpivot.com. […]

  • […] was just reading Scott Drummonds article on Memory Compression. Scott explains where Memory Compression comes in to play. I guess the part I […]

  • […] was just reading Scott Drummonds article on Memory Compression. Scott explains where Memory Compression comes in to play. I guess the part I […]

  • […] I am not allowed to say anything about this technology because of NDA, but Scott Drummonds has written an interesting article about the future feature memory compression. You can check out Scotts article: here […]

  • […] Guide – PDF Version Foundations for Cloud Computing with vSphere4 vSphere Session Montor 1.0 Xtravirt RDP vSphere4 Plug-in VMware PEX – Transparent Memory Compression (TMC) Microsoft – Linux Integration Tools […]

  • […] Scott Drummonds provides a bit more information on the memory compression technology previewed by Steve Herrod at Partner Exchange 2010 a few weeks […]

  • Scott, any news on TPS for large pages? I’m worried that we are going to trade off TPS for memory compression with the necessary performance hit when just enabling TPS for large pages might eliminate the need to compress in many situations.

    • No official word on a change in existing policy. Given that large pages are so much bigger, they are much, much, much less likely to be common with other pages and be shared. There is little return in sharing large pages.

      Of course, once memory is over-committed, ESX backs large pages with small pages and will share those small pages. This forfeits about half the value of large pages, but the guest page walks remain more efficient.


  • […] Memory Compression This will avoid swap when RAM is overcommited by compressing a set of target pages to a special region. VMware measured the latency of this technique as a hundred times better than the latency of […]

  • It seems to me that a lot of the stuff we are seeing are ways to push work up the hardware stack. So we’re doing with disk what we used to do with tape, ram (well SSDs) what used to be done on disk & now processor is being used instead of regular RAM (which really is what compression does, trading CPU cycles for a more compact but higher overhead way of storing stuff in memory. Virtualization started because we knew we had machines sitting their idle but more and more I think it’s a way to make sure all of the hardware is being utilized more effectively by blurring the lines between memory processor and storage.

    Hardware is so fast now that going from one tier to another has a dramatic impact (tape->spinning disk-> SSD caching -> RAM -> processor). Good stuff, especially since it makes my CIO think I am magic, he keeps adding apps and our hardware requirements stay static or even drop in cost.

  • […] Scott Drummonds provides a bit more information on the memory compression technology previewed by Steve Herrod at Partner Exchange 2010 a few weeks […]

  • […] 4.1 Feature: Memory Compression Originally hitting the blogosphere via Scott Drummonds here, and presented as a future technology by Kit Colbert and Fei Guo at VMworld 2009, this cool new […]