XenApp Best Practice #2: Optimize

On many moonless evenings, I will be outside, next to my telescope snapping pictures of clusters, nebula and galaxies for my astrophotography hobby. But there is a balance of creating a great image vs just wasting time. Once it gets past 2am or the temperature drops below 0 Fahrenheit, I’m done. But do I have enough pictures to create an OK photo or a great photo?

You see, in order to take a photo of deep sky objects, you need to let your camera capture a lot of light by keeping the shutter open for many minutes at a time. Of course, at the same time, you also build up noise on the imaging chip.Here is an example of a single, 90 second image of M27 – The Dumbbell Nebula


If you take and stack multiple images together, you increase the signal while reducing the noise. This is a stack of 29 frames, each 2 minutes in length for a total of 58 minutes

M27 - The Dumbbell Nebula

The image got quite a bit clearer. The signal got stronger and the noise was reduced.  Of course, the more images you take and stack, the stronger signal you achieve, but the noise is only reduced by the square root of the number of images. Don’t worry, I’m not going to go into the math for this because this graph makes the concept very clear


As I take more frames, the noise decreases. But in order to have the noise drop by another factor, I have to take many, many, many more pictures. Now I will spend hours of time capturing the extra images, processing the images and all for a minimal improvement in image quality. And while I’m outside using the telescope, I run the risk of getting frost bite (true story), going into hypothermia or get eaten by a bear a wolf or a moose (Yah sure you betcha. don-chya-no I in da Minnesoda)

The same concept holds true for XenApp and XenDesktop deployments. You can optimize and then you can optimize.

There are hundreds of ways you can better optimize XenApp. Some of these are easy, proven and will have a noticeable, positive impact on either the user experience or resource utilization. But there becomes a point of diminishing returns. For example, what benefit will I get if I disable a Windows service? Most likely, not much. And in fact, the more you tweak, the greater the possibility of doing something hazardous to your system’s health. I’ve heard many times that someone turned off some innocuous Windows service only to find out a few months later that a new application or update requires that service.

Does this mean stick with the default configuration? OMG NO.

Start with the big items. Start with those items that are proven and have been shown to improve the experience or reduce utilization without potentially harming the system stability. I’m talking about things like

  1. Provisioning Services RAM Cache: This will not only reduce storage utilization, but it will actually improve the user experience.       In the simplest terms I can provide… Disk is slow, RAM is fast. Use RAM. ?
  2. Microsoft Lync/Skype for Business optimization: As we see more people make video calls with Lync and Skype for Business, we see a hit on our processor. Using this XenApp/XenDesktop feature, we are able to drastically reduce resource consumption on our host servers.
  3. Session Prelaunch: Logon complaints might be one of the most common issues for any system, and I’m not even talking about XenApp/XenDesktop. But at least with XenApp, we can overcome the logon delays with Session Prelaunch
  4. Policy Templates: XenApp and XenDesktop have a very powerful policy engine, allowing you to match the user experience with the scenario. If you are external, you get this, if you are external on this device with this configuration, you can do that, if you belong to this group, you can do something else, if you are on this subnet, this desktop group, have this tag, then you get this config, and if your iOS device is jailbroken, you can only do this one thing. It is very powerful, which means many implementations don’t configure anything. Again, a great starting place is to use the latest policy templates in XenApp & XenDesktop 7.6 Feature Pack 3, as they are tailored for a specific use case.

Now don’t get me wrong, you can go and tweak the system as much as your heart’s desire, but at a minimum, you should focus on those items that can have a big impact.

XenApp Best Practice #2: For the best combination of user experience and resource consumption, optimize appropriately

Daniel (Follow @djfeller)
XenApp Best Practices
XenApp Videos


XenApp Best Practice #1: Keep Apps and Data Together

XenApp Best Practice #1: For the best user experience, application and back-end data must reside together on a fast, low latency network.
What if you decided to store your cooking pots and pans in the bedroom? Every time you wanted to cook some Mac & Cheese, you would have to walk through your house, maybe up the stairs and into the bedroom to grab a pot. Then you walk back through your house into the kitchen to start cooking.  And if you are like me, in the middle of cooking your delicious Mac & Cheese you realize you need another pot, so again, you walk back through your house, up the stairs, to the bedroom to grab the next pot, and then you walk back downstairs into the kitchen.

This is a horrible experience (although it might solve obesity problems with all of that extra exercise).

So tell me why you would want to have your data far away from your applications?  You wouldn’t, right?  But I’ve seen so many do it. Let me give you some examples:

  • Exchange Online: If I have a local install of Outlook, my application data is somewhere in the cloud.
  • Hybrid Cloud: We host an application in the cloud while leaving our data residing in our data center.

For the best user experience, your applications and back-end data must reside together on a fast, low latency network.

This is one of the fundamental XenApp best practices.

  1. Look at Citrix ShareFile.  In the XenApp/XenDesktop world, we locally sync what you are currently trying to access.
  2. For Exchange Online, only sync the most recent email, as it is the data you will most likely access. (Take a look at the Office 365 Deployment Guide for additional design recommendations.)
  3. For XenApp, host applications in the right data center or cloud provider where your application data resides. If this means you have XenApp hosts in multiple locations, so be it because you can use the Applications and Desktop Service of Citrix Workspace Cloud to integrate all of these sites together into a single management plane.
  4. And for your home, keep your pots and pans in the place you will use them… in the kitchen.

Stay tuned for more best practices…

Daniel (Follow @djfeller)
XenApp Best Practices
XenApp Videos