At the time when I was working for a global pharmaceutical company, I was frequently faced with the question how to setup a Farm or Zone Design for a worldwide environment and to ensure at the same time, that the users still have the best performance. Since I work for Citrix, I know that this question is still highly present. Whenever I was visiting a customer with a global XenApp Farm or XenDesktop Site, the same question about the best Farm or Zone Design came up at some point.
It is well known that the performance of XenApp and XenDesktop solutions is always compared to the performance of a Desktop PC. In fact, the users do not pay attention to the solution’s technical details or to the origin of the solution. Therefore a stable and fast environment needs to be provided for the users within the LAN and WAN.
In this blog I am going to describe the different end user needs regarding the usability of a XenDesktop Hosted VDI Desktop, XenApp Hosted Shared Desktop or a published application within a global environment and its consequences to the XenDesktop Site and XenApp Farm Design. To see how a XenApp Farm Design should look like from an administrator’s perspective and to get further informations regarding Zone concepts, I recommend to read Nicks great Blog about this topic.
But before starting with the main topic, I have to do the usual Consulting coverage ;-). First all recommended design and configuration proposals must be verified in a dedicated test environment before implementing them into the production environment. Not all solutions and settings will have the same result, as every environment is somehow unique. The provided solutions and settings can have different behaviors. Nevertheless, the good news is: all outlined solutions are fully supported by Citrix.
End User Requirements
Unfortunately, end users’ requirements are very often underestimated and not collected at all. Ultimately however, your personal goal is to fully satisfy the end users’ needs. Therefore all user requirements from all regions / sites should be collected before starting with a XenApp or XenDesktop design. In most cases the requirements of the LAN users do not have the same influence on the design as the ones of the WAN users have. Users accessing the environment from within the LAN have in general enough bandwidth available plus almost zero latency and a stable network infrastructure. So let’s focus on the WAN users.
Before deciding about the need of a dedicated Farm or Site for the particular region or site, you have to find out how the users work and what kind of applications or desktops they use. There is a huge difference between the usage of an Office application or a Desktop with multi-media content. First of all, you need to be aware of the type of the applications that are used. Further it is important to know the applications’ processes and their behavior. In brief, the creation of an end user “usage profile” is essential. Especially for WAN users, it is important to know, how the applications behave in case of an occurred delay within an user action. Following are a few key questions that I suggest to ask your users to find out what kind of usage is expected:
- Are they using applications or desktops?
- Does the application or desktop have multi-media content?
- Is Internet Explorer used?
- How intensely and how long are they using the applications or desktops?
- How high is the available bandwidth and latency of the users site?
It is generally known that applications with high graphical requirements (Internet Explorer, Windows Media Player, graphics editing program) do also have high network and hardware requirements. The content of such applications needs to be updated frequently and as a result more screen updates occur. More screen updates lead to higher network traffic usage.
Implications for the Farm / Site Design
So the question is now: What are the conclusions from the user feedback and what are the implications for your Farm or Site Design? Let’s start with an extreme example and make a floating changeover to the consequences. I once saw an environment where users had 320 ms latency and were using a XenApp application with local text echo enabled (Switzerland – Australia). It was a Service Desk application with very low graphical requirements. The users were able to work normally. But at the same time I have to say that this configuration based on the above mentioned circumstances would not fit for every application and environment. With such a high latency, applications with a high amount of content updates will not work properly. Additionally if you have users who are working fast or over a longer period (more than 6 hours a day), the high latency will avoid efficient working. Therefore I suggest my customers to build a dedicated Farm or Site given the following circumstances:
- Latency above 150 ms and intensive application or desktop usage (6 hours or more)
- Latency above 150 ms and high graphical applications (including multi-media content and Internet Explorer)
- Latency above 150 ms and usage of a XenDesktop or XenApp desktop as primary platform
- Latency above 300 ms
I have defined 150 ms as latency limit for the above described recommendations. The 150 ms have no technical background but are derived from my own experiences and makes from my point of view sense in combination with the described scenarios.
For all other scenarios I would choose a centralized Farm or Site configured with the below listed optimization settings.
XenApp and XenDesktop offer out of the box performance enhancements for the HDX components. Since a lot of administrators are not using them, I will only focus on these settings to show the influence on the network traffic. The optimizations applies to XenApp 6.5 and XenDesktop 5.5 / 5.6.
In most XenApp and XenDesktop environments I’ve examined, there was only one policy configured for all users. But the “one fits all solution” doesn’t work in a global environment. Therefore I usually insist to create at least two additional user policies besides the baseline policy: One for the LAN and the other one for the WAN users. And of course, you can create a separate policy for every site with specific settings.
In case of the LAN users, there is normally no need for ICA traffic optimization. The optimizations for WAN communication is handled by our great HDX Adaptive Orchestration feature, which evaluates the end user’s client resources, bandwidth and server resources to determine the best delivery method for a high definition user experience. While specifying our own settings, in order to maximize the performance, the HDX Adaptive Display functions will be limited automatically. Please be aware that the below described optimizations are based on performance enhancements where the network traffic but also the display quality will be decreased, not like HDX Adaptive Orchestration, where high definition user experience is still provided.
Max Frames per Second: The setting indicates the maximum number of frames per second sent to the client. The default value for XenApp 6.5 and XenDesktop 5.6 is 24 fps and is configurable up to 30 fps. To increase the performance and reduce the bandwidth, set the fps ranging between 10 to 15 fps.
Minimum Image Quality: Configures the minimum acceptable image quality. The Minimum Image Quality is related to the Lossy compression level, which sets the starting image quality. Adaptive Display then adjusts the JPEG quality between the Lossy compression level and Minimum Image Quality. Configure the Minimum Image Quality to low (min. image quality = 15).
Extra Color Compression: When enabled, Extra Color Compression uses lower color resolution for images where the bandwidth is below the defined threshold. Therefore the setting is dependent on the Extra Color Compression Threshold. Set the threshold to the maximum value, which is 4,294,967 Kbps, to ensure, that all connections with a lower bandwidth than the defined value use the Extra Color Compression.
Heavyweight Compression: Heavyweight compression allows you to further reduce bandwidth without losing image quality by using a more advanced, but more CPU-intensive, graphical algorithm. If enabled, Heavyweight Compression applies to all lossy compression settings.
Lossy compression level: Lossy compression eliminates redundant or unnecessary information within the data stream. Higher compression results in greater loss of image quality and therefore in bandwidth and packet savings too. The higher compression used, the less the frames per second rate. Configure the Lossy Compression Level to high (starting image quality = 25) and set the associated threshold to the maximum (2,147,483,647 Kbps).
But does the optimization really help? To prove the performance and network traffic savings I created a workflow with EdgeSight Active Application Monitoring, to ensure, that all test cases have the same procedure. During the recording of the workflow (11 min.) I used Adobe Reader for PDFs, wrote documents with Microsoft Office Word, used Windows Explorer to browse through folders, viewed pictures and used Internet Explorer to browse the web. We can say that this procedure represents a typical task-worker. In addition, I used a WAN emulator to reproduce the different latency values. Bandwidth has not been reduced, as I focused only on latency optimizations. To get a real baseline I performed this procedure 15 times with the default policy settings and captured the amount of network packages transferred bytes and average bandwidth during the session lifetime. Afterwards I ran the same workflow with the above mentioned optimizations. The results are summarized in the following table:
As you can see, there is a decrease of network traffic in all measurements. During the baseline runs (default settings) I registered a packet count of between 12,255 and 23,376, transferred Mbytes ranged between 7.6 and 14.1 and used bandwidth between 90 Kbps and 164 Kbps. The results of the optimized settings were better and had a much smaller variance. The total packet count ranged from 9,376 to 10,363, transferred Mbytes from 6.5 up to 7.3 and bandwidth from 76 Kbps up to 84 Kbps. Before ending the network traffic analysis, I have to point out, that the biggest saving results from the reduction of the frames per second. Therefore without any application with a high rate of screen updates I would recommend to reduce the fps first before changing the settings of compression or lowering the display quality. The measured results only apply for the above described scenario. They might vary depending on the used environment.
As you may have recognized, we did not focus on flash and multi-media optimization because there is already a very detailed white paper available regarding that topic. I highly recommend to study the “Best Practices and Recommendations for Citrix Receiver 3 and HDX Technology with XenDesktop” paper, where all HDX functions and the out of the box flash and multi-media optimizations are very well described.
Because there is not only one way of doing it, please share your experiences with optimizations. Which settings generated your most valuable performance increase?
I hope you enjoyed the reading. Any feedback is very welcome ;-).