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.
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.
Cpu scheduling and memory optimization