Performance difference of Citrix ICA Visual Quality profiles

Performance difference of Citrix ICA Visual Quality profiles

When delivering a virtual desktop environment, a great user experience has a huge effect on the success of your environment. There are many settings and optimization that can improve the overall performance and user experience. There are also many optimizations that can be applied within the remoting protocol. Within Citrix ICA there is a setting called Visual Quality. Which options are available and what is the effect of the various options? This research is focused on the performance difference between the Visual Quality settings within the Citrix ICA protocol.

Disclaimer: These results have been affected by the Login VSI progress bar and results may be different in practice. For more information please read the following post.

What is the Visual Quality setting?

The Visual Display section contains policy settings for controlling the quality of images sent from virtual desktops to the user device.

Preferred color depth for simple graphics

This policy setting is available in VDA versions 7.6 FP3 and later. The 8-bit option is available in VDA versions 7.12 and later. This setting makes it possible to lower color depth at which simple graphics are sent over the network. Lowering to 8-bit or 16-bit per pixel potentially improves responsiveness over low bandwidth connections, at the cost of a slight degradation in image quality. The 8-bit color depth is not supported when the Use video codec for compression policy setting is set to For the entire screen. The default preferred color depth is 24-bits per pixel. VDAs fall back to 24-bit (default) color depth if the 8-bit setting is applied on VDA version 7.11 and earlier.

Target frame rate

This setting specifies the maximum number of frames per second sent from the virtual desktop to the user device. By default, the maximum is 30 frames per second. Setting a high number of frames per second (for example, 30) improves the user experience, but requires more bandwidth. Decreasing the number of frames per second (for example, 10) maximizes server scalability at the expense of user experience. For user devices with slower CPUs, specify a lower value to improve the user experience. The maximum supported frame rate per second is 60.

Visual quality

This setting specifies the desired visual quality for images displayed on the user device. By default, this setting is Medium. To specify the quality of images, choose one of the following options:

  • Low
  • Medium – Offers the best performance and bandwidth efficiency in most use cases
  • High – Recommended if you require visually lossless image quality
  • Build to lossless – Sends lossy images to the user device during periods of high network activity and lossless images after network activity reduces. This setting improves performance over bandwidth-constrained network connections
  • Always lossless – When preserving image data is vital, select Always lossless to ensure lossy data is never sent to the user device. For example, when displaying X-ray images where no loss of quality is acceptable.

Source: https://docs.citrix.com/en-us/xenapp-and-xendesktop/current-release/policies/reference/ica-policy-settings/visual-display-policy-settings.html

Infrastructure and configuration

This research has taken place on the GO-EUC platform which is described in the following post. More information about the testing methodology is described here. The infrastructure components like Citrix Delivery Controller and Citrix Storefront are hosted on a separate server from the desktop pool. In this case, Citrix XenDesktop was used running Windows 10 1803 with the Citrix VDA 7.18. Each VM contains 2vCPU’s with 4GB of memory which is enough for the configured workload. The default Knowledge Worker workload is used including the small modifications as specified in the GO-EUC infrastructure post.

There are many settings within the Citrix Policies that influence the user experience. As a base the “Very High Defenition User Experience” template is used which contains the following settings.

Computer Policies

Setting Value
Multimedia conferencing Allowed
Dynamic windows preview Enabled
Legacy graphics mode Disabled

User policies

Setting Value
Use asynchronous writes Disabled
Desktop wallpaper Allowed
Legacy graphics mode Disabled
Menu animation Allowed
View window contents while dragging Allowed
Audio quality High – high definition audio
Flash video fallback prevention Not Configured
Windows Media fallback prevention Not Configured
Target minimum frame rate 10 fps
Target frame rate 30 fps
Visual quality High
Extra color compression Disabled
Use video codec for compression For the entire screen
Preferred color depth for simple graphics 24 bits per pixel
Auto-create client printers Auto-create all client printers
Direct connections to print servers Enabled
Universal print driver usage Use universal printing only if requested driver is unavailable
Universal printing print quality limit No Limit
Universal printing optimization defaults ImageCompression=BestQuality; HeavyweightCompression=False; ImageCaching=True; FontCaching=True; AllowNonAdminsToModify=False

Within this research, we focus on the policy setting Visual Quality located in the computer section. This research consist of 4 separated scenario’s:

  • Visual Quality High using TCP, as the baseline;
  • Visual Quality Medium using TCP;
  • Visual Quality Low using TCP;
  • Visual Quality High using UDP.

For each scenario, only the policy is adjusted except for scenario 4 testing with UDP where the following UDP ports are allowed in the firewall 2598, 1494, 3224-3324. Both “Build to lossless” and “Always lossless” are not included in this phase as both options are for specific use cases.

Windows 10 image is optimized using the Citrix Optimizer with the 1803 template. During the tests Windows Defender is disabled this may influence the results with unexpected behavior. Citrix machine catalog is created using MCS in a stateless configuration using local profiles. At user logoff, the virtual machine is restored to the original state. To ensure consistent results each scenario contains 10 runs with a total time of 18 hours per scenario. All results published are an average of the 10 runs.

The results

The primary benchmark solution is Login VSI which reports a baseline result and of course the VSImax. Results are published in percentages compared to the high scenario.

vsimax

Higher is better

baseline

Lower is better

As you can see there is no difference between the 4 scenarios from a Login VSI perspective. Based on the Login VSI results, the same pattern from the hypervisor perspective is expected. Results are published over time with the absolute number.

host-cpu

Lower is better

host-reads

Lower is better

host-writes

Lower is better

As expected there is no difference, which means increasing the visual quality has no impact on capacity.

To get an idea from the user perspective we use the tool Remote Display Analyzer to collect data from the protocol. This is captured for each individual user. It’s important to know different users cannot be compared because the duration of the Login VSI workload is different for each user. Therefore the results published are from a single user, which is the first user that is active.

Within the Citrix ICA protocol, the metric framerate is reported. These are the number of frames per second send over the protocol from the desktop perspective. A high framerate will increase the user experience as it feels smooth. But please note, the metric is difficult to read as the amount of frames is depending on the activity within the session. When a user is idle no updated frames will be sent over the protocol.

session-fps

Higher is better

session-fps-compare

Higher is better

The results show there is no difference in the framerate in the scenarios. This has to do with the resources available within the VM which is enough for all scenarios.

Another important metric is the Round Trip Time also known as the latency. Even when the framerate is good, a high latency can kill the user experience. A high latency will result in delayed keystrokes from the endpoint to the sessions.

session-rtt

Lower is better

session-rtt-compare

Lower is better

The difference between the High, Medium and Low scenarios are minimal but switching to UDP result in a higher RTT. As these tests are done within the same datacenter the effect is not noticeable for a human, but in a WAN scenario, the impact can be higher. These findings are interesting as it conflicts with Citrix publications. This may be worth to investigate further, what do you think?

During an open session, it will consume bandwidth in order to send and receive data between the session and the endpoint. Lower bandwidth will have an effect on the user experience as there is less room to send and receive information.

session-bandwidth

Lower is better

session-bandwidth-compare

Lower is better

The visual quality has an effect on the used bandwidth which is as expected. When using UDP there is less bandwidth consumed which confirms the best practices of Citrix.

Of course, it is also interesting to look from the endpoint perspective. Please note, a launcher hosts multiple sessions and this scenario there are 8 – 9 sessions on each launcher.

launcher-cpu

Lower is better

launcher-cpu-compare

Lower is better

Between the 3 scenarios, there is a minimal difference but comparing the UDP high to high there is an increase of 44% in CPU. To be clear, this is not from 8% CPU Utilization to 52% but from 8% to 12%. 44% of 8 is 3.52, which results in 12 rounded up.

From the launcher perspective, the total traffic sent through the network adapter is measured. Please note the following chart is not comparable to the ICA bandwidth as there are multiple sessions active in a single launcher and this includes traffic to the Login VSI share, Citrix Storefront etc.

launcher-nic

Lower is better

launcher-nic-compare

Lower is better

The difference between the High, Medium and Low scenario is minimal except for the UDP High scenario. For some reason this a 10% higher compared to the High scenario. This is unexpected behavior and may be further investigated in the future.

Conclusion

Disclaimer: These results have been affected by the Login VSI progress bar and results may be different in practice. For more information please read the following post

The Visual Quality Policy setting allows you to improve the quality of the image sent through the ICA protocol. The overall impact on capacity is none which means switching from a Low to High Visual Quality setting does not affect the overall user density on the servers. However, as there is no noticeable difference in the framerate it does have an effect on Round Trip Time and bandwidth. Using UDP result in less bandwidth send over the ICA protocol but during this research, the total traffic on the network adapter and the CPU utilization on the launcher (endpoint) increased. This is unexpected results and may require further investigation.

As some results are not as expected I hope this research provides a bit more insight into the performance impact of the Visual Quality Policy. If you have any comment or questions please leave them below.

Photo by John Allen on Unsplash

Share this post:

Ryan Ververs-Bijkerk
Ryan Ververs-Bijkerk
Ryan is currently a Technical Evangelist at RawWorks focused on the End-User Computing area. Ryan is primarily focusing on the user experience in centralized desktop environments.
linkedin twitter website github reddit
comments powered by Disqus