CPU scheduling and memory optimization solutions compared Part 2 of 2 Memory

If you are reading this you might also be interested in part 1 of the CPU scheduling and memory optimization solutions series.

For a while now customers and colleagues are asking me which tool to use when it comes to CPU scheduling and Memory optimization. We use several management products and end up with more than one product utilizing these tasks. Choice is good but do we just enable them all and if not what’s the best way to configure this?

When you look a little bit deeper then plain and simple marketing you’ll notice that the way the different products handle memory optimization totally different and combining some of them will degrade system performance or might not work.

To start off I will first try to explain how each product works and will then summarize and see if we can work through them and work to a proper advice. 

Citrix Memory Optimization

When you enable memory utilization management, you enable the rebasing of DLLs for virtual memory savings without actually changing the DLL files.

Scheduling Virtual Memory Optimization

After enabling virtual memory optimization, you create a virtual memory optimization schedule that identifies when a server rebases DLLs for greater operating efficiency.

When a server rebases a DLL:

  • It makes a hidden copy of the DLL
  • It modifies the starting address of the DLL to avoid conflicts that result in multiple copies of a single DLL held in virtual memory

Schedule virtual memory optimization at a time when your servers have their lightest loads.

RES Workspace Manager Memory Optimization

Optimizes the physical memory usage of running processes on computers in your environment. With Memory Optimization enabled, RES Workspace Manager automatically releases:

  • Reserved physical memory that is no longer used by a recently launched application.
  • Physical memory of applications that have been inactive for a while.

It is not recommended to use Memory Optimization alongside of other memory optimization features such as Citrix Virtual memory Optimization.

The above is copied from the RES Workspace Manager Admin Guide. Unfortunately there is no technical description available about how the process of Memory optimization is handled. As we speak I’m still waiting for an answer from RES Software to give a more detailed explanation of this process.

Conclusion

Unfortunately I can’t answer the question which of the two solutions you should be using. As I don’t know how RES WorkSpace Manager operates I can’t compare it.

What I do know is that both solutions work and managing memory optimizations is much easier with RES Workspace Manager. To exclude a process from memory optimizations you can just hit the check box “No Memory Optimizations” on the application.

What about VDI

Do we need memory optimization on a VDI desktop? My first response would be “No of course not we don’t share anything”. When you think a bit more about this (Thanks Andy Morgan) that’s not entirely true because we are sharing the hypervisor, the better we handle resources the more sessions I get on a hypervisor machine.
Do you need it? It depends on applications and use case but if you do, read a bit more!

The question which product to use is easier for VDI because Citrix Memory Optimization is not available on VDI so we can only use RES Memory optimization.

http://support.citrix.com/proddocs/topic/xenapp6-w2k8-admin/ps-maintain-man-virt-mem-use-v2.html

Cpu scheduling and memory optimization

RES Softwate Valued Professional

RES Softwate Valued Professional

About Barry Schiffer

Barry is an IT Architect with 15 years of IT experience. He has gained both a broad and deep knowledge in the sphere of IT. Throughout the years, Barry has developed into a specialist in the field of Microsoft Windows, Server Based Computing, desktop and server virtualisation.Barry is co-founder and member of the Board of the Dutch Citrix User Group.Barry is awarded with the Citrix Technology Professional award in 2015 and received the RES Software Valued Professional award in 2012.
Tagged , , , . Bookmark the permalink.

7 Responses to CPU scheduling and memory optimization solutions compared Part 2 of 2 Memory

  1. Menno Bernardt says:

    Hi barry,

    A comment on your remark on sharing memory on VDI. As you state with VDI memory will be shared by the hypervisor. So saying that RES memory optimization for that purpose is usefull is something I dissagree. RES memory optimization is not able to look into the underlying hypervisor. I you want memory optimization there, you should use memory optimization features of the hypervisor. VMware has some of these features, like transparant page sharing and memory compression.

    • Hi Menno, thanks for your comment! I couldn’t agree more:).

      What I was trying to say is that average consumed memory in the VDI sessions will be lower because of RES memory optimization. This may eventually lead to a somewhat higher density per host. I know some of the architects will have their own view on that statement because you shouldn’t scale on average but that’s a design discussion and we need some beers for that;).

  2. Vincent Alberti says:

    Thanks for the information which is really usefull!

  3. Tim Mangan says:

    Memory optimization is actually generally not functional on modern systems anymore (I’ve been trying to get Citrix to understand this). When Microsoft introduced ASLR, they changed the way re-basing works to eliminate the memory penalty. In essence, the “on the fly” rebase happens when the first copy is loaded, but before the virtual memory is changed to “copy-on-write”.

  4. donserdal says:

    Did you get an answer from RES? Did you also notice RES only works single core? With memory optimization how would RES know memory is “unused” it seems RES uses all kinds of dll injection methods, at least I think so. We sometime get RES logs that it cleaned up 4~5 GB of a user’s memory. How and where… I wouldn’t know…

Leave a Reply