1 1 1 1 1 1 1 1 1 1 Rating 5.00

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

While I was researching performance issues with server 2016, I found an interesting article by Microsoft talking about a new optimization. Already built into Windows 7 release, it was further developed and finally activated by default with Windows 10 Clients. With server versions the same feature is disabled but can be activated by a simple PowerShell command. I couldn't find anything on using the feature with multi-user systems. I was wondering, if this feature would give instant more performance or better user experience on session hosts running server 2016 or 2019. Customers of mine are testing it right now, and I'm interested in the results. Do you want to join them?

What's the feature, you ask? It's called "Memory Compression" and enabled with Windows 10 by default. Look within Task-Manager, Performance, and then Memory, here you will find: in use (compressed).

What memory is compressed, and how can it help with performance on multi-user systems? The compressed memory is the memory that would have paged out to disk but instead got compressed and stored into memory. According to Microsoft, Windows is doing compression and decompression very well and, therefore, much faster than writing- and reading from disk. The Windows operating system is paging right away, and it doesn't matter how much RAM you have. If Windows gets into a memory "stress" state ( a Microsoft description but I remember reading it's around 70% RAM usage), the OS starts to page out much more and therefore needs more CPU cycles to do the job. Even when memory usage is high, memory compression will help, because it will write compressed data to disk and therefore faster read- and write operations. 
 
 
File server, print server, mail server, etc. will not benefit from memory compression, because there is no dynamic memory usage and the reason why it's disabled by default. As we all know, a multi-user system (Remote Desktop Services) is more like several Workstations, running many more applications and is much more dynamic when it comes to memory usage.
 
Microsoft writes the following:
“The new Memory compression concepts should help in making Windows 10 appear snappier and more responsive than earlier versions, even on existing hardware.”
 
I firmly believe the same applies to a multi-user system and should be active with the RDS role!
 
Memory compression can be enabled by the following PowerShell command: Enable-MMagent -MemoryCompression and no reboot required, even with users already on the system. Depending on the memory usage, you should see the compression part growing in task-manager.

 

From the previous picture, I enabled memory compression and opened some applications. Even the system has enough memory, Windows is already paging, but this time compressed into memory!

What do you think, let me know and also if you have tried it!

 

References