Windows 10 Memory Compression's Impact on VMware VDI

Windows 10 now includes the memory compression feature.  This changes the I/O and RAM utilization profile of Windows when used as a virtual machine.  While this feature stands to bring an overall performance gain for Windows 10 machines, it should be given extra consideration when used in a VMware Horizon View environment.

In order to better understand the implications of Windows 10's memory compression, it's important to understand why it's being used in the first place.  There are two different benefits to this technology.  The first is mobility.  As users move more and more to laptops, tablets, and 2-in-one devices, there is increased pressure to extend battery life lessen device form factors.  This can achieved by making the operating system more energy efficient.  Memory compression acts as a buffer between regular active RAM and the page file.  I/O typically consumes more power than using existing RAM.  More efficient use of RAM can allow a device to use less of it, requiring less power for normal operation.  The other side to this technology is enabling users to multitask better, allowing more programs to remain open at any given time.  Users typically only actively use a small number of programs or files at any given time, but having others open and at their fingertips can lead to improved user productivity and response time.  These benefits can be applied to virtualized OSEs as well as their hardware-based

This adds some considerations to planning VDI pool images.  It may be possible to achieve similar VM performance using somewhat less RAM, or to provide a buffer for power users with more inconsistent workloads.  When profiling RAM utilization for users during image design, it's important to observe RAM utilization over the course of the day, not just during initial program launch.  Since memory compression kicks in over time, it's particularly important to note that it does not help compensate for boot storms and initial program launches.  Of course, each environment and set of users is unique, so gains will vary from environment to environment.  The goal is to set the RAM on VMs small enough to cause enough pressure to realize gains from compression, but yet leave enough available to avoid guest OS swapping or performance degradation.

On the VMware side, it is worth noting that utilization of memory compression will typically lead to more efficient memory usage.  This can be observed as an overall higher percentage of active RAM within a guest VM.  Because of this, the percentage of active RAM is a less viable KPI when determining proper RAM size.  Host RAM utilization is also impacted.  Memory compression results in somewhat less per-VM unique pages for a host to compress.  However, with as much shared information in RAM as VDI VMs have, especially with linked clones, there remains ample memory for a host to deduplicate.

Taking in the factors above can help plan for memory compression in VMware Horizon View environments running Windows 10.  Properly leveraging this technology can lead to better performing, more efficient VDI, and even increase VM density in some environments.