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 


Comments  

Gabriele Pallas
# 0 SYSblog.itGabriele Pallas 2020-04-23 21:49
Thank you for the tip THOMAS, I'll try on my Lab!
Reply
Dirk
# 0 CEODirk 2020-04-24 07:20
Hello Thomas, i've tried that on a Citrix 2016 Worker but without luck. The Powershell command does not work.
Reply
Thomas Kötzing
# 0 RE: CEOThomas Kötzing 2020-04-24 09:18
I enabled MC on Windows Server 2016 build 1607. Get-MMagent shows the current values
Reply
Bruce Spies
# 0 RE: Instant more performance for Server 2016 and 2019?Bruce Spies 2020-04-24 16:19
Any idea where this setting is saved? I have tried to use a few tools to figure it out, and have gotten nowhere so far.
Reply
Thomas Kötzing
# 0 RE: Instant more performance for Server 2016 and 2019?Thomas Kötzing 2020-04-26 07:39
No I don't.
Reply
Bruce Spies
# 0 RE: Instant more performance for Server 2016 and 2019?Bruce Spies 2020-04-24 19:41
What do you make of the other properties? specifically ApplicationLaunchPrefetching, ApplicationPreLaunch, OperationAPI, and PageCombining ? I found on Windows 10 all of these are enabled. I also found on older XenApp Windows 2016 servers I deployed last year that every one of these are False; but, servers I deployed just a month ago have PageCombining set to True. I am thinking of turning on these ones OperationAPI, MemoryCompression and PageCombining. What do you think?
Reply
Thomas Kötzing
# 0 RE: Instant more performance for Server 2016 and 2019?Thomas Kötzing 2020-04-26 07:51
Windows 10 has most of them active. With multi-user systems it's more likely that applications and required dll's are already loaded and the benefit of RDS to be shareable between users. Pre-Launch and Pre-Fetch cannot really help in those environments and page combining might fall into the same category.
Reply

Add comment

Security code Refresh