Well I guess it’s about time to dig this dead horse up and beat it a few more times. Seriously, running XenApp as a virtual machine on top of VMware ESX is nothing new but I have encountered several customers recently looking to implement this very configuration. Almost every one of them have asked questions regarding expected performance, i.e. how many concurrent users can be hosted from a single XenApp VM, as well as questions around best practice configuration. Unfortunately when it comes to performance it’s not a straight forward answer and the majority of the time the response to that question is a big fat “it depends”.
However, don’t despair for there are a few different ways to determine the answer to the concurrent user question. Probably the soundest advice that I can give anyone about to build out a XenApp environment, whether physical or virtual, is to execute a load test prior to production implementation. Think about this in the context of construction. Before any type of building can begin a soil sample must be taken to determine the PSI that the land can support. This ensures the building does not collapse under it’s own weight. Now, when applying this logic to IT it makes complete sense to execute a measurable test to determine the maximum scalability of a system before any production load is introduced. Without a load test the environment is either overbuilt, which is a waste of resources, or it’s under-built and collapses leaving behind upset users, a non-productive business, and an IT staff that has to deal with the mess.
Fortunately load testing in a XenApp environment has become very simple and for some customers it’s now free. With the introduction of the licensing changes brought about by Project Arrowhead earlier in the year XenApp Enterprise and Platinum customers now get EdgeSight for Load Testing free of charge. This is an excellent tool which can collect performance statistics on XenApp servers, applications, and backend systems while generating a synthetic user load against the environment. The synthetic user load is created by recording a standard ICA session or sessions, a user working through a Word doc, Excel spreadsheet, and reading email in Outlook for example, and then playing that back through virtual user generators which can be installed on other VM’s running XP. The solution is very similar to Mercury LoadRunner but a lot less expensive and significantly less complex. Basically it is the best way to unequivocally determine how many concurrent users a XenApp server can host and therefore what the overall environment can support.
Information on EdgeSight for LT can be found here
Beyond executing a load test there is a wealth of information available regarding the virtualization of XenApp and best practice configuration. While the main focus of this article is instilling the importance of load testing I have included many other resources that I use on a daily basis when designing and building virtual XenApp environments.