Citrix Access Suite 4.0 – It’s Not Your Daddy’s MetaFrame
What is Access Suite 4.0?
In late April, Citrix Systems rebranded their product line once again to strategically align their different technologies and acquisitions into clear channel streams for their customers. If you are familiar with the history of their flagship server-based computing product, you know this is not the first time Citrix has decided on a name change. They went from WinFrame to MetaFrame 1.0, then 1.8, then XP, and finally MetaFrame Presentation Server (often called MPS3). With the latest platform restructure and release, Citrix has once again rebadged the flagship product and dropped the MetaFrame name entirely. They simply became Citrix Presentation Server. In this article we will focus on several of the new Presentation Server technologies and their potential impact to your organization.
Other than a name change, what does this new Presentation Server release really mean? The reorganization has created the Citrix Access Suite and divides their product lines into Citrix Presentation Server, Citrix Access Gateway, and Citrix Password Manager. Access Gateway and Password Manager build on the base that Presentation Server provides and expands the ability to access applications remotely but securely, but Presentation Server and server-based computing remain the core offering from Citrix. New names are fun, reorganizations are good, but unless it has some benefits then there’s not much point to it. Luckily, Citrix has provided some reasons for considering an upgrade.
New Server Optimization
Citrix claims that their new optimizations allow you to host a greater concurrent user load on existing hardware. They accomplish this by wrapping a CPU utilization management tool and virtual memory optimization tool into the Enterprise edition of Presentation Server. Previously, administrators were forced to rely on 3rd party technology like RTOSoft’s Tscale or Aurema’s ARMTech. Those technologies provided you the ability to manage CPU utilization based on preset variables, optimize .DLL calls per user, etc; PS4 tries to incorporate this functionality within the Citrix configuration itself.
CPU Utilization Management
The implementation of the CPU utilization management is a bit primitive at this point. If you are used to some of the 3rd party tools, you will probably be disappointed to see that there is no per-process or per application configuration. Instead Citrix has taken a shotgun approach, saying in essence that each user will receive a slice of the CPU pie. They accomplish this by using two different methods called Shares and Reservations. By default, each user will have a CPU Share made up of slices. This means that they will be given a percentage of the CPU based on the total number of user on the server. If 4 users are logged on to the server, each user will be able to utilize at least 25% of the available CPU. These are soft caps however. If a user is not utilizing all of their CPU time, it will be available to other sessions. The user will reclaim those slices when required by their application.
The second CPU optimization technology is the CPU Reservation. This allows administrators to create a pool of available CPU time that is always available to a user. By default a reservation of 20% of the CPU time is automatically created for system overhead. Other reservations can be created and assigned to users, deducting them from the total pool. Shares and Reservations work hand in hand. If you use Reservations to set aside 40% of your total CPU, then the Shares slices for each user will in fact be their percentage of the remaining 60%.
As I mentioned, this is a primitive approach. It does accomplish the basic goal of eliminating individual CPU spikes and rogue applications that will cripple the CPUs for everyone. It does not give you any real level of application control. Both Reservations and Shares must be assigned on an individual user basis, and cannot utilize groups. They are not integrated with Published Applications beyond the ability to set a CPU priority level for the application within its properties. So while you are smoothing out the overall utilization and providing each user a guaranteed minimum percentage of CPU, you are not controlling the applications themselves within the individual sessions.
Virtual Memory Management
Along with the CPU utilization, Citrix has provided their virtual memory management. This functionality is designed to decrease virtual memory utilization and speed the load time for application. When a user attempts to load a DLL in a Citrix session it often leads to a situation called a collision. This occurs when the DLL is being loaded into the same base memory address as another DLL. When this happens, the system is forced to use physical memory to load a new DLL instance and it cannot be shared between applications.
Citrix utilizes a local service called the Citrix Virtual Memory Optimization service. This service monitors all DLL calls on the server and watches for collisions. It writes this data to a log file, which is periodically read by the repair service. A temporary copy of the DLL is created, and is optimized and rebased to load in a new memory space based on the collision data and the CTXTestDLL.exe program loads them to make sure that they still function correctly. If they do not the temporary DLL is removed. If they seem to function with the optimizations, the temporary DLL is copied into an Alternate Data Stream. The original DLL remains unchanged. When a call is made to the DLL, Presentation Server checks to see if a newer version exists in the Alternate Data Stream cache. If so, that is the DLL used by the application.
Citrix also provides a means to exclude applications from this optimization process. The application exclusion list is available in the Presentation Server Console under the Memory Optimization section of the farm properties. By default, some system properties will be placed in this list. The memory optimization will not work with DLLs that are digitally signed or protected with Windows Rights Management. It is also worth noting that stopping the Citrix Virtual Memory Optimization service has no impact on DLLs that have already been optimized. It will only prevent future optimization attempts. To remove optimized DLLs for an application, place it in the Exclusions list.
Application Isolation is another new toy Citrix has provided for administrators. It allows you to redirect named objects, registry keys, and even file access to locations that you can specify. This provides the means to overcome several application limitations Citrix has had in the past. First, you can now run multiple versions of the same application on a single server. With properly defined Isolation parameters, each version will be entirely independent of each other. This is a serious help for administrators of smaller sized (or smaller budgeted) farms, especially as you transition applications to new versions.
Secondly, Application Isolation will allow you to run applications that would not function on Terminal Services in the past. Registry key calls intended for HKLM can instead be redirected to HKCU to prevent registry corruption. File redirection gives you the flexibility to place files in user shares to be called by the application, further isolating each user session. This provides a sandbox environment for every application you host, and can lead to greater productivity from your Presentation Servers.
A final piece of the Application Isolation is the ability to provide virtual components to an application, such as virtual IP address ranges. Many applications will rely on a dedicated IP address per session. Citrix now allows you to define virtual address ranges and to use them to trick applications into thinking they have a dedicated IP. An important caveat should be mentioned here. Because of the required overhead, Application Isolation does eliminate some of the advantages that the optimization tools provide. So make sure that you include this in your planning and testing phases.
It is easy to see how Citrix is trying to leverage these three technologies to improve the flexibility of Terminal Services and maintain market presence. It is also important to note that all three are in their infancy. In many cases, 3rd party tools will still provide a much more granular level of control over applications and memory utilization. You can’t complain about the price though, since all three are provided now as part of the Enterprise edition package. For many administrators, these tools may be all they require for maintaining a smooth and functional Citrix environment.
There are many other improvements in PS4 that are worth exploring. SmartCard optimization, PDA synchronization, and the improved Universal Print Driver are all worthy technologies. Citrix seems to have succeeded in providing quite a bit of value in Presentation Server 4.0, and given administrators some very good reasons to upgrade. And if you have Subscription Advantage, the cost could be nothing more than your time.