What (if any) "performance tweaks" do you do to desktop images for VDI/RDSH desktops?

VMware recently released a PDF guide and tool which optimizes Windows desktops & RDSH servers for use in virtual environments. At first blush it reminds me of the MetaFrame Tuning Tips & Tricks document that Rick Dehlinger put together about 15 years ago.

VMware recently released a PDF guide and tool which optimizes Windows desktops & RDSH servers for use in virtual environments. At first blush it reminds me of the MetaFrame Tuning Tips & Tricks document that Rick Dehlinger put together about 15 years ago. (Remember tweakcitrix.com?) More recently, at BriForum 2013 London, Claudio Rodrigues gave a session, What still holds up a Citrix best practices 12 years after MetaFrame tuning tips? (Here’s a YouTube video of that session if you haven’t seen it.)

VMware’s guide contains some great examples (like disabling scheduled tasks) while also including some things that I can’t possibly think still matter in 2015 (like disabling the animation effect of minimizing a window). Their guide is good overall, and they talk at length about the importance of analyzing your optimizations to see whether they have an effect.

Of course optimizing a desktop is a trade-off between performance gains and user acceptance. Disabling every pretty thing in Windows might get you an extra user per server, but at what cost? RDSH/VDI is already weird enough for users, so you don’t need to give them another reason to hate it by making Windows 8 look like Windows 2000.

It seems like there’s this persistent fantasy among VDI & RDSH admins that there’s some kind of magic registry key that, when set, will suddenly make it so you can get 50% more users on a box. Of course that’s not the case. (Trust me, if it was, then that value would be set by default. :)

But I do agree that Windows was designed to be run on a bare metal piece of hardware in a 1:1 way, and based on that there are undoubtedly some performance tuning tweaks that make sense. So I wonder: Do you tune or tweak your base images for performance reasons, and if so, have you found anything that actually makes a difference?

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

It's a great question. Overall I think these tweaks are still valid but very hard on their way out.

Citrix' Daniel Feller  recently also updated the Windows 10 tweaking guide. ( virtualfeller.com/.../windows-10-optimization-part-2 ). Even when I was a Quest our Virtual Desktop Optimizer tool (which was built in 2 days) was by far the most popular download we ever had.

The reason why I think tuning will become a thing of the past is that down the road hyperconverged will become a commodity and then the risk of tuning something so far that it breaks something (which you will never know until it is too late) will just not be worth it anymore.


I have a stack of optimizations that I do for 2008 R2/win 7.  All of which I have rolled into group policies.  Easier to deploy that way.  

But I noticed with Win8/2012R2 and later that the number of tweaks has drastically been reduced.  Where I see the most benefit is in service management.  Virtual machines really have no need for bluetooth and wireless services, but they are running by default.

The nice thing about GPO is that if you tweak it for one OS, and it is missing in the other, it carries on just fine.  Maybe a blip in the event log is all.  But hyper-loading the policy like that provides no ill effect, and allows you to control all OSes as the same type.


Great subject Brian - cards on the table.

I've been in the Citrix world since 1995, yes I remember Rick's spreadsheet fondly :-) and for the last nearly 12 years I've worked for AppSense, and I'm one of the specialists on our Performance manager product.

I've installed PM in probably over 400 sites - most of them Citrix/Vmware sites. Most of the recent ones obviously virtual terminal servers or VDI. I even went to Microsoft HQ in Redmond to do testing with Citrix and MS for a large customer (100,000 seats vdi).

I can typically show around 30% increase in scalability/decrease in server count when properly configured. As you can imagine 30% is a pretty compelling business case and leads to many client using PM to enhance their platform and provide consistent performance.

This conversation is just as relevant today as it was 12 years ago :-)

Relying on host level Cpu/Memory management doesn't work when a user runs a hungry app and their experience turns to crap. Managing individual windows threads and processes INSIDE each Guest will provide consistent performance with less load on the host server.

So that's my experience, sorry if it sounds like an advert but you did ask, and this is my sweet spot and one of our technologies I am most passionate about :-)


Sadly, I love Citrix but I found myself using the VMW optimization guide and tools, way better than the Citrix stuff.  All of us who love Citrix can't help but agree their documentation has always been lacking, hence the Carl Stahlhood's of the world to fill in the gaps and the community forums.  I saw Daniel's Win10 guide, not much substance there and still nothing officially from Citrix so I'll probably wait for VMW to put something out there and run with that.  


Metaframe XP 3.5 Admin from back in the day. Now doing View 6. I haven't tested this tool yet but I can tell you the previous VMware optimization scripts were draconic in nature.

As Brian mentioned, items like menu animation were disabled. Not that users care about that, they want a decent look but responsiveness is king.

These are a few of the areas that can consume a large amount of your infrastructure resources or impact the user experience.  

* Memory - Overprovision memory on VDI. Windows always wants more memory then it actually needs but vSphere is very efficient. Meaning while vSphere hands out 500MB out of 2GB, Windows says it is using all 2GB. Give the baby its bottle and assign 4GB to the VM.  

*App I/O - Don't underestimate a small app from consuming 20+ IOPS while not being used. Dig into perfmon and verify no outliers processes exist.

Browser I/O - All browsers consume a lot of memory, cpu, and disk I/O. If possible redirect the browser cache to lower tier storage.

Linked Clones - Utilize the ability of linked clones to provide a fresh desktop experience. Delete all Linked clones each weekend which results in a fresh desktop on Monday.


All the vendor documents on these topics are 90% hocus-pocus. And all of the documents are lacking critical recommendations that matter in the real world.