Tag Archives: best practices

Citrix VDI Handbook for XenApp and XenDesktop 7.15

Almost one year ago, I announced the availability of the Citrix VDI Best Practices Handbook for XenApp and XenDesktop 7.6 (that’s a really long title).

Since then, I received many positive comments from many of you. Thank you.

One of the goals I set was to release an updated version of the handbook for upcoming Long Term Service Releases (LTSR). And with the release of XenApp and XenDesktop 7.15 LTSR, I’m happy to say that we achieved this goal.

Matthew Brooks, Jeff Qiu and I updated the handbook to include new capabilities and recommendations. We added 30 new sections and updated 15 other sections. For example, we have content related to

  1. Cloud
  2. App Layering
  3. Windows 2016
  4. Local Host Cache
  5. Machine Creation Services
  6. Provisioning Services Accelerator
  7. Adaptive Display & Adaptive Transport
  8. And much, much, much, much, much more

A complete list of updates can be found at the end of the paper in the Revisions Table.

So grab a drink, find a comfy chair, sit back, relax and enjoy the Citrix XenApp and XenDesktop 7.15 VDI Best Practices Handbook.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.15 VDI Handbook
XenApp Best Practices
XenApp Videos



XenApp Best Practice #5: Maintenance

It’s January. It’s midnight. It’s cold (-10F).

My telescope isn’t bringing this galaxy into focus.

My user experience is dreadful.

As I investigate, I shine a light at the front telescope and quickly see how years of dust and grit are causing my focusing issues.

IMG_5199(Click the image to see close up)

My lack of proper maintenance activities on the telescope just ruined a potentially wonderful night of observing.

When I first set up the telescope, objects were crystal clear. However, each subsequent time I rolled out the telescope, the quality degraded. The degradation was so minimal that it was not noticeable until one night things got so bad that I thought my telescope was junk.

I see the same thing happening in production XenApp/XenDesktop environments.

For example, when a new user is added, a new image is created or a new application is deployed, the experience is good. But slowly, over the course of months, the user’s logon time increases. It increases at such an incrementally slow pace, that the user doesn’t realize until their 25 second logon is now 50 seconds. The increase in time could be a result of a slowly growing profile, or new group policy preferences, or an ever-expanding logon script that supports new users and use cases.

Most of us focus on deployment and pay little attention to what happens next. That lack of focus will slowly erode the user experience. This is why maintenance is one of our core XenApp best practices.

XenApp Best Practice #5: Continuously delivering  the best user experience requires proper ongoing maintenance

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
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 ()
XenApp Best Practices
XenApp Videos

XenApp Virtualization Best Practices

One of the first questions when virtualizing XenApp is how many VMs to put on a server. Well, that was discussed in the Virtualize XenApp blog. Once you figure out how you plan to carve up the physical server, one of the next common questions is deciding which features of the hypervisor to enable/disable. For example, if I use XenServer, should I use the “Optimize for XenApp” setting? What about vSphere’s Transparent Page Sharing feature? And the big whopper, how should I allocate memory to my virtualized XenApp servers? Is it safe to use dynamic memory or am I safer to stick with fixed memory?

The following table is what Citrix Consulting has seen and recommends. By the way, if you want the entire discussion on virtualizing XenApp, then go to the XenDesktop Design Handbook and look in the Planning Guide section for XenApp Virtualization Best Practices.

Decision Justification Hypervisor
Overcommit CPU:No It is advisable not to allocate more vCPU than there are logical cores on within the given hardware. Experience has shown that greater levels of scalability are achieved by not overcommitting CPU. Hyper-VXenServer


Utilize Hyper-threading:Yes Newer processors have the ability to do hyper-threading, where each core is two logical cores. Utilizing hyper-threading in a XenApp environment has been shown to improve user density. Hyper-VXenServer


Disable ASLR: No As many organizations try to protect their XenApp servers from viruses, malware and other OS exploits, it is advisable to keep Address Space Layout Randomization enabled, which is the default setting. The functionality is included with Windows 2008, Windows 2008 R2, Windows Vista and Windows 7. Hyper-VXenServer


Enable Transparent Page Sharing:Depends on OS Enabling or disabling Transparent Page Sharing has not been shown to either help or hurt performance on newer systems (Windows 2008, Windows 2008 R2, Windows Vista and Windows 7). However, older systems (Windows 2003 and Windows XP) have benefited, mostly because the page sizes are smaller (4K), thus making it easier to share pages of memory. vSphere
Optimize for XenApp:N/A On systems utilizing pre-Nehalem processors, the XenServer setting “Optimize for XenApp” provided increased scalability. Since the release of the Nehalem processors, much of the functionality has been placed on the hardware so this particular XenServer setting can be ignored. XenServer
Disk Alignment: Yes As a host server will be running multiple instances of a server operating system, it is even more important to optimize the disk subsystem to improve performance and scalability as opposed to a system running a single operating system. Windows 2003 is misaligned with default installations. This should be corrected installation to help reduce storage impact. XenServerHyper-V


Memory Allocation:Fixed As users are dynamically load balanced across XenApp servers, memory usage between different virtual machines should be similar, helping negate the need for dynamic memory allocation techniques. Also, if VM migration strategies are used, this could cause memory overcommit resulting in aggressive paging and poor performance across all XenApp virtual machines. It is advisable to set fixed values for memory reservations for XenApp virtual machines. XenServer


Host Swapping: No In most environments, all XenApp servers are actively hosting users at the same time. Swapping out memory from one XenApp host will degrade performance for all virtual machines as the memory keeps getting transferred to/from disk. vSphere

Daniel – Lead Architect
XenDesktop Design Handbook

Windows 7 Optimization Guide for XenDesktop

If you have been following my ongoing commentary regarding Windows 7 optimizations for virtual desktops, you have probably been wondering when all of this information will be put into a document. Well, it has finally happened. Based on many of the items Citrix Consulting has identified, we have our initial Windows 7 optimization guide for virtual desktops using the hosted VM-based VDI model. You noticed that I specified which FlexCast model this is for because if you end up doing local streamed or local VM you might wish to modify certain settings for those use cases.

What you will also see is that other optimization guides probably have many, many more optimizations. Why? Most guides are looking at performance as opposed to the user experience. The settings within this guide are trying to balance the user experience with performance. Some optimizations will make the system run faster without impacting the users while other settings might improve performance might create negative perception. It is a fine line to walk and it is something each person has to determine when building their virtual desktop environment on Windows 7.

If you want the Windows 7 Optimization Guide for XenDesktop, as well as so much more, then access the XenDesktop Design Handbook.

Daniel – Lead Architect

How to Avoid Turning Your XenApp into Frankenstein

I just got done watching Mary Shelley’s Frankenstein the other day. You  know how the story goes. Victor Frankenstein putting pieces together to create something new. It works, but it is not what Victor expected. In fact, it is so horrible that it scares everyone and destroys all who stand in its way.

I also just got done having a discussion around virtual desktops. In this discussion, an organization using XenApp is asking the $1,000,000 question “How can I add virtual desktops to my XenApp implementation?”

It is actually quite easy, you create a virtual desktop, install Citrix Receiver, and away you go.  Great, right?  If we just add pieces together without thinking about things properly, we might end up with our own Frankenstein in the data center. Let me ask you a question. If you go down this route, then why in the world do you need a desktop if all of your applications are running as hosted XenApp applications?

Virtual desktops are going to allow us to get broader adoption of the virtualization solution throughout the organization. Applications are only part of the entire solution.  Users are more comfortable working in a desktop environment, so let’s give it to them. But how?

  • First, the integration is not hard, it just requires a proper analysis and design of your overall goals (this is the most common thing to do with a system design).
  • Second, we need to align our users needs with the solution (remember, one size does not fit all).
  • Third, we need to create an solution that is optimized and functional.

This is a great architectural discussion, which I’m sure you will get something out of.  The only caveat is you have to be registered for Synergy Berlin and attend the session SYN320 – Add virtual desktops to your XenApp implementation the easy way!

Hope to see you in Berlin

Daniel – Lead Architect

Fun TechTalk on XenDesktop Enterprise Design

One of the best things about my position is I get to talk to a lot of smart people, do some pretty cool things (like playing around with the iPad), and constantly learn. For example, any idea why you would modify the “Maximum Transition Rate”? Do you even have an idea what it is?

I learn about all of these things every day that helps in the overall XenDesktop architecture. I’ve come to realize that building a XenDesktop environment isn’t really that hard, but if you want to do it right so that it scales and is optimized, then you might want to brush up on the best practices. And because XenDesktop can use XenServer, Hyper-V and vSphere, the list gets longer. I’ve got some new stuff and goodies to share around storage, Provisioning services, XenServer, VMware vSphere, Microsoft Hyper-V, and Windows 7.

I thought I would share some of these recommendations with you in an upcoming Ask the Architect TechTalk (aren’t I nice? 🙂 ) Here are the wonderful details:

Oh, I almost forgot, that “Maximum Transition Rate” thingy. It is for the XenDesktop controller to determine how many simultaneous desktop startups it can do. We typically recommend the following

  • XenServer: 40
  • Hyper-V: 40
  • vSphere (without DRS): 40
  • vSphere (with DRS): 20

Attend the TechTalk and you will learn why DRS number is lower as well as many other goodies.

Daniel – Lead Architect