This article has a lot of information on how to size a virtualized XenApp server. A lot of this information applies to RD Session Hosts too.
My last post provided guidance on how to estimate XenApp density based on processor specification and user workload. In the second post of the series, I’m taking a look at the optimal specification for the XenApp virtual machines themselves.
In an ideal world, every project would include time for scalability testing so that the right number of optimally specified servers can be ordered. However, there are various reasons why this doesn’t always take place, including time and budgetary constraints. Architects are all too often asked for their best guess on the resources required. I’ve been in this situation myself and I know just how stressful it can be. If you over specify you’re going to cost your company money whilst under specifying reduces the number of users that can be supported, or even worse – impacts performance.
XenApp Server Virtual Machine Processor Specification
In most situations, testing has shown that optimal scalability is obtained when 4 virtual CPUs are assigned to each virtual machine. When hosting extremely resource intensive applications, such as computer aided design or software development applications, user density can sometimes be improved by assigning 6 or even 8 virtual CPUs to each virtual machine. However, in these situations consider using XenDesktop rather than XenApp so that you have a granular level of control over the resources that are assigned to each user.
User Density per XenApp Server Virtual Machine:
The user density of each 4vCPU virtual XenApp server will vary according to the workloads that they support and the processor architecture of the virtualization host:
- Dual Socket Host: You should expect approximately 36 light users, 24 normal users or 12 heavy users per XenApp virtual machine.
- Quad Socket Host: You should expect approximately 30 light users, 20 normal users or 10 heavy users per XenApp virtual machine.
Depending on your worker group design, you may have a blend of light, normal and heavy users on each XenApp virtual machines. In these situations, adjust your density estimates based on the overhead of each workload type (light=1.5, normal = 1, heavy =0.5). For example:
Dual Socket Host -
- 30% light : (36 / 100%) * 30 = 11
- 60% normal : (24 / 100%) x 60 = 14 users
- 10% heavy : (12 / 100%) * 10 = 1 user
Total number of users per XenApp virtual machine = 26
Number of XenApp Servers per Virtualization Host
When determining the optimal number of virtual XenApp servers per virtualization host, divide the total number of virtual cores by the number of virtual processors assigned to each XenApp virtual machine (typically 4). For example, a server with 32 virtual cores should host 8 virtual XenApp servers (32 / 4 = 8). There is no need to remove server cores for the hypervisor because this overhead has been baked into the user density overheads discussed in the first blog.