When multiple users are sharing system hardware such as on a Terminal/Citrix server there is always a potential issue of one user hogging all the CPU resources. If you are looking at task manager and seeing higher than expected CPU usage then you may be experiencing this problem. In this article I describe the CPU optimization option available in Citrix Presentation Server 4 and other options that are available to you.
Although it’s stating the obvious, when you experience higher than expected CPU then first of all you should establish what or who is causing the problem. If it’s one paticular user doing something they shouldn’t be (such as playing games) then this can be stopped fairly quickly. If it’s not work related then you should also ensure that this user or any others can’t do
this again using the methods available such as group policy, NTFS permissions or simply removing the application they were using if not required.
That said there are resource hungry applications that you may have to make available to certain users. As previously mentioned any one user can unwittingly take all of the CPU resources causing everyone else on the server to slow down or even hang their Terminal Server session.
Here are a few options advising how to stop this happening
Option 1 - Citrix CPU Utilization management
CPU Utilization Management is a new option available with Citrix Presentation 4. The bad news is it’s only available with the Enterprise edition. Citrix claim that with this and the virtual memory optimization you can decrease resource utilization by up to 25%. It basically works by smoothing out the CPU peaks that most applications have and limiting resource hungry applications to their fair share of CPU so other users aren’t inadvertently affected. It can be
switched on by a simple tick box for the whole farm or single servers from the properties section under Memory/CPU Utilization Management.

Option 2 - Windows System Resource Manager (WSRM)
The above may of course not be an option to you if you don’t have the correct version of Citrix or are just running Terminal Services. In this case if you are running Windows 2003 server then you may be in luck with the introduction of Microsoft’s Windows System Resource Manager (WSRM). This does require the Enterprise or Datacentre editions of Windows Server 2003
so once again this may not be available to you. This works in a similar way to the Citrix option by allowing you to allocate certain amounts of a computer’s resources to each application either individually or by group (The Citrix option does not allow you to allocate by group).
Option 3 - Threadmaster
If you don’t have the above versions of Windows or Citrix then thankfully there is still another (free) option available to you. It’s called Threadmaster by Soren M. Peterson and can be used on all versions of Windows 2000 and 2003 server. Once installed configuration is all done via the registry which can be off-putting for some but all the configuration options are explained on the website. It basically allows you to specify CPU amounts on a per application basis and I have used it successfully many times before.
Hints & Tips
It should be noted that while the above options are helpful in certain circumstances it is not always the case. The user who is trying to use more than his fair share of the resources will experience a slower experience than what he/she is used to. The good news is that this person will be the only one affected, all the other users within their allocation limit will continue working as normal. Without one of the above options in place when the user starts using more CPU than is available ALL users will experience a slower experience.