Citrix HDX in VDI (XenDesktop/XenApp 7.x)

Citrix HDX in VDI (XenDesktop/XenApp 7.x)
Photo by Martin Adams / Unsplash

I don’t have experiences in Citrix technologies, but in a VDI project i worked with thins clients and the HDX display. I found few interesting things about this technology.

Citrix HDX Brands

Citrix HDX is grouping several brands which involve differents technologies.

HDX Display: all technologies about the display of clients. The goal is to provide the best display for each client. The last technologie is « Adaptative Display » (2nd generation) in XenDesktop/XenApp 7.x. In previous version it was progressive display speed screen, adaptative display. In Adaptative Display (2nd gen), few modes exists (DCR, H.264, compatibility mode, legacy mode).

HDX 3D Pro: the goal of this technologie is to provide best display in applications which need high graphics performance. The adaptative display (2nd gen) use H.264 encoding in GPU and not only CPU. In this case, the client need to be compatible with local H.264 decoding.

HDX MediaStream: this technologie provide a multimedia redirection (Flash contents and Windows Media Player contents). The server redirects the contents to the client who is in charge of the rendering. The benefits is to reduce the load of servers (CPU, RAM).

HDX RealTime: the goal is to transfer voice/video end to end, bypassing the server. This improve the experience of users in Microsoft Lync for example. And this reduce the load of servers.

Adaptative Display and H.264

In my experience i realize the importance of Adaptative Display with the H.264 mode.  This is the default mode, but if the thin client isn’t compatible H.264, Adaptative Display use the « H.264 compatibility mode ».  In this case the display isn’t encoded in H.264, but it’s simple JPEG transfer. This compatibility mode use much more bandwidth!

The difference is significative. The profit is over 50%!

In a WAN (ADSL 4 Mega):

  • Without H.264 i measure a peak at 12 000 KB
  • With H.264 i measure a peak at 3000 KB

HDX MediaStream (WMP vs VLC)

In a published Desktop, it’s important to know how many ressources consumed programs. In a large scale we could have some performance problems and it’s hard to troubleshoot.

For example, i measure the CPU and RAM usages of two programs: Windows Media Player and VLC. The first player is compatible HDX MediaStream and it’s make a big difference!

For my test i use sample video in 1080p H.264 encoded (https://peach.blender.org).

1080p playing HDX
Difference CPU/RAM usages between WMP and VLC

 

The usage of ressources is not comparable.

With VLC the video rendering is server side.

With WMP the rendering is client side. Be careful, in this case, the thin client must to be compatible with the codec of the video. If the thin client isn’t capable to decode the video, the rendering is server side!.

Others tips

If you want to reduce the bandwidth usage between server and thin client, you could enable a « mousetimer » in the Citrix Receiver config. The goal of this timer is to send mouse move in « batch » and to smooth the upstream. The benefit is high (50% says Citrix) with a mousetimer at 120ms. A good range is 70-100ms.. Higher than 120ms could degrade the user experience.

If you have other tips, please add a comment! 😉

Sources:

  • Citrix Virtual Desktop Handbook 7.X – http://support.citrix.com/article/CTX139331
  • What’s new with HDX display in XenDesktop & XenApp 7.x? – http://blogs.citrix.com/2014/10/22/whats-new-with-hdx-display-in-xendesktop-xenapp-7-x/