Lessons Learned with vCPU Allocation and HDX
How many of you have read the XenDesktop Planning Guide called “VM-Based VDI Resource Allocation” that is in the XenDesktop Design Handbook? Hopefully, there are a lot as it provides a table with initial recommendations for allocating vCPU, RAM, steady state IOPS for VDI type desktops. Remember, these are estimates!
|User Group||Operating System||vCPU Allocation||Memory Allocation||Avg IOPS (Steady State)||Estimate Users/Core|
|Light||Windows XP||1||768MB-1 GB||3-5||10-12|
|Windows 7||1||1-1.5 GB||4-6||8-10|
|Normal||Windows XP||1||1-1.5 GB||6-10||8-10|
|Windows 7||1||1.5-2 GB||8-12||6-8|
|Power||Windows XP||1||1.5-2 GB||12-16||6-8|
|Windows 7||1-2||2-3 GB||15-25||4-6|
|Heavy||Windows XP||1||2 GB||20-40||4-6|
|Windows 7||2||4 GB||25-50||2-4|
This table assumes you are using Provisioning Services as the single image management solution. As you can see, most user group categories, we recommend a single vCPU. Most users will be able to work with a single vCPU allocated to their virtual desktop image. However, in situations where multimedia, voice, video, webcams are used, this could result in less than stellar performance. Why? Have you ever looked at your CPU when doing something like Microsoft Lync? If not, take a look on a non-virtual desktop. Your CPU is going to be running pretty hot.
As soon as you start using some of the more advanced HDX capabilities, it is pretty safe to recommend the allocation of 2 vCPUs. With only 1 vCPU, you will probably see inconsistent performance with video playback due to the processes/threads waiting for their turn on a single vCPU. With two, we can overcome the serialization of the processing.
Unfortunately, once you allocate 2 vCPU, your host hypervisor scalability will decrease because the CPU scheduler must do more work. But allocating 2 vCPU where you used to allocate 1 vCPU will not cut your scalability in half (it isn’t that bad). But remember, you are doing heavier processing activities as well if you need to use HDX items like HDX RealTime so don’t count these users in the Light User Group category.
The virtual desktop that Citrix IT allocated for me is 2 vCPUs. And I use this thing every day and have had no issues with the user experience, even when watching YouTube videos. So you need to ask yourself a question… Do you want to pack on the most users possible, or do you want to provide a consistent user experience that mimics a traditional desktop?