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 ()
XenApp Best Practices
XenApp Videos

8 thoughts on “XenApp Best Practice #2: Optimize”

  1. Great blog and very pertinent information. The “law of diminishing returns” is often neglected. A good example of efficiency comes from pollsters, who know very well the numbers and demographics of the samples they need to gather to minimize time and maximize results. And not only are the results maximized, but only to the extent they need to be! This is a critical point when it comes to accomplishing many tasks; overkill can be as inefficient as having to redo something because it’s “not good enough”. A similar point is FPS — the human eye can only detect a certain limit of rapidity of change, so even if you can generate 100 FPS, is it of any sue for a human viewing such a rate when 20 FPS might be sufficient?

    In this regard, having XenApp and XenDesktop 7.6 FP3 do the thinking for you and optimize the user experience according to the metrics it sees makes so much sense, and it is really wonderful to see this truly taking place.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.