luchschen_shutter - Fotolia
How to approach Citrix performance troubleshooting
Citrix performance issues can be difficult to deal with. Fortunately, there are ways to prevent and troubleshoot them using various techniques, such as automation.
It's common for virtual desktop environments to experience performance issues, but there are ways to prevent them.
IT admins should know several tips to prevent and eliminate Citrix performance issues, including how to properly configure provisioning services and cache mode in Citrix Virtual Apps and Desktops.
Why positive UX is so important in a Citrix environment
It is easy to fall into the trap of not worrying too much about maintaining positive user experience. After all, there needs to be some acceptable level of latency. IT can't stop every slow logon, bandwidth shortage, application performance issue and authentication problem.
However, the pressure to deliver a strong performance in any VDI or desktop virtualization environment is extremely high. First and foremost, desktops with consistently poor UX can lead to frustrated users and a lack of productivity. With a regular local desktop, network latency can hinder internet-based tasks, such as email and web browsing, but end users can still view and edit documents and other data stored locally on the endpoint. Virtual desktops have no such offline functionality, making the prospect of a connectivity problem or another back-end issue far more damaging.
Some of the main symptoms that IT administrators should look for from an end-user experience perspective are help desk complaints that Citrix is slow, slow Citrix logon times and general slowness or latency within a user session. While IT admins can trace some issues back to resource issues, including a shortage of CPU or general network issues, they may need to dig deeper into metrics within troubleshooting tools to find the root cause of Citrix VM issues.
The pressure is on for Citrix administrators to take all Citrix session performance issues seriously. If users have a poor experience, they may decide to work at a different organization that prioritizes positive UX. While this isn't exclusive to Citrix -- and virtual desktop technologies from vendors such as Microsoft, Google and VMware all need the same attention to detail -- Citrix sessions need as much attention to detail as any other vendor's sessions.
Citrix OS optimization
One way to prevent Citrix performance issues is to optimize the OS. Out of the box, Windows 10 can run as a virtual desktop OS; it's built to run on laptops, PCs and tablets. Microsoft includes many services, such as wireless LAN services, diagnostic settings and cleaning scheduled tasks, that are unnecessary for using Windows 10 as a virtual desktop OS.
IT can disable these services and optimize the settings to give the image a significant performance boost. IT should optimize the OS by downloading and running Citrix Optimizer when creating a new virtual environment. This tool comes with built-in templates and is fully supported by Citrix. If IT admins are already running an existing deployment, they can run the tool in a scanning mode to optimize missed settings.
Citrix Provisioning Services configuration
One of the most common performance issues with nonpersistent Citrix environments is a misconfigured Citrix Provisioning Services (PVS) environment. To get the most out of Citrix PVS, IT should first correctly size the RAM of the PVS server. Citrix PVS caches the reads of the virtual disk (vDisk) in the RAM. This way, the next VM that boots from the same vDisk reads from the RAM of the PVS server, which is much faster than the disk. Citrix offers a guide on sizing the RAM and provides an easy equation to calculate the right amount of RAM:
2 GB + (#XA_vDisk * 4 GB) + (#XD_vDisk * 2 GB) + 15% (Buffer)
Another issue that causes performance degradation is PVS versioning. IT should not have too many versions on top of the disk and merge them instead. If possible, IT should try to avoid using versions completely. IT can automate the complete vDisk creation process to eliminate the need for versions. If IT admins need to change the disk, they can edit it in the automation process and create a new vDisk without creating a new version.
IT should use the cache mode correctly to prevent Citrix performance issues. The cache of Citrix Virtual Delivery Agents is often full because, after IT boots the machine, software installs via automation or Group Policy. All of these installations end up in the cache because the machine runs nonpersistently. Often, IT configures cache in RAM with overflow on a hard disk, and the RAM is full with software installations, which is expensive storage for installation and causes performance degradations.
More Citrix performance tips
App-V Shared Content Store mode
When using App-V with nonpersistent Citrix machines, like PVS or Machine Creation Services (MCS), IT should configure App-V to use Shared Content Store mode. This way, App-V does not download the complete packages and fill up the cache.
Use performance monitoring software
The easiest way to identify Citrix performance issues is to use performance monitoring tools, such as ControlUp, Liquidware Stratusphere or UberAgent.
MCS fast storage
MCS uses storage to clone nonpersistent VMs. The faster the storage is, the faster the VMs boot and load programs. IT should use MCS with solid-state drives -- or, even better, non-volatile memory express SSDs.
Virus scan allowlist
It is important to properly configure the virus scanner in a Citrix environment, which can give a performance boost. IT should follow Citrix's written guidelines for antivirus software.
IT should make a new version of the vDisk with the installations rather than add it to booted machines. The default size is 4 MB when Citrix creates a cache file on the persistent disk. If a cache file is much larger than a few hundred megabytes, there might be something wrong that degrades performance.
IT should redirect to the persistent disk, such as the printer spooler, event logs and Workspace Environment Management cache. The free Base Image Script Framework tool can help with this.