It has been almost one year since Windows Server 2016 was released at Microsoft Ignite. Are the virtual machine sizing recommendations for Windows Server 2012R2 applicable to Windows Server 2016? And since we are talking about sizing virtual machines for XenApp and XenDesktop, it might be a good time to revisit Windows 10.
Let’s first look at virtual CPU allocation recommendations:
User Workload | Operating System | vCPU
Configured for Scale |
vCPU
Configured for Experience |
Light | Windows 7 | 2 vCPU | 2 vCPU |
Windows 10 | 2 vCPU | 2 vCPU | |
Windows 2012R2 | NUMA or ½ of NUMA | NUMA or ½ of NUMA | |
Windows 2016 | NUMA or ½ of NUMA | NUMA or ½ of NUMA | |
Medium | Windows 7 | 2 vCPU | 3 vCPU |
Windows 10 | 2 vCPU | 3 vCPU | |
Windows 2012R2 | NUMA or ½ of NUMA | NUMA or ½ of NUMA | |
Windows 2016 | NUMA or ½ of NUMA | NUMA or ½ of NUMA | |
Heavy | Windows 7 | 3 vCPU | 4 vCPU |
Windows 10 | 3 vCPU | 4 vCPU | |
Windows 2012R2 | NUMA or ½ of NUMA | NUMA or ½ of NUMA | |
Windows 2016 | NUMA or ½ of NUMA | NUMA or ½ of NUMA |
Windows Server
Even though Windows 2016 is more CPU intensive than Windows 2012R2, that does not change how we allocate virtual CPUs to our Windows 2016 virtual machines. We want to align our vCPU allocation with the NUMA configuration of our physical processor. This alignment results in us either making our vCPU allocation equal to NUMA or half of NUMA, but when we use half of NUMA, we need to double the number of virtual machine instances.
Windows Desktop
For Windows 10 we simply align our vCPU allocation with the user workload and our configuration goals. If we want to give the users the best overall experience, we want to allocate extra vCPU resources, but this will increase costs as we might over allocate resources. Using “configured for scale” as our plan will give the users a good experience, but, depending on the applications, might become sluggish if under extreme load.
After vCPU, many architects want to start estimating RAM requirements.
User Workload | Operating System | vRAM
Configured for Scale |
vRAM
Configured for Experience |
Light | Windows 7 | 2 GB | 3 GB |
Windows 10 | 2 GB | 3 GB | |
Windows 2012R2 | 256 MB per user | 256 MB per user | |
Windows 2016 | 320 MB per user | 320 MB per user | |
Medium | Windows 7 | 3 GB | 4 GB |
Windows 10 | 3 GB | 4 GB | |
Windows 2012R2 | 512 MB per user | 512 MB per user | |
Windows 2016 | 640 MB per user | 640 MB per user | |
Heavy | Windows 7 | 6 GB | 8 GB |
Windows 10 | 6 GB | 8 GB | |
Windows 2012R2 | 1024 MB per user | 1024 MB per user | |
Windows 2016 | 1280 MB per user | 1280 MB per user |
Windows Server
RAM allocation between Windows Server 2012R2 and Windows Server 2016 is slightly different. Based on performance tests, Windows Server 2016 utilizes more RAM than Windows Server 2012R2. Windows Server 2016 includes more capabilities than Windows Server 2012R2 so an increase in RAM utilization is expected, but these can be slightly offset with proper Windows 2016 optimization.
Windows Desktop
Just like vCPU, RAM allocation for Windows desktops is fairly straight forward. Out of the box, Windows 10 consumes more RAM than Windows 7, but with proper optimization (default apps, scheduled tasks, services and runtime), it is possible to reduce overall RAM consumption on Windows 10.
Of course, all of these numbers are based on your application workload, but the expectation is that the heavier the workload, the more RAM users require.
Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.15 VDI Handbook
XenApp Best Practices
XenApp Video
Hi,
do you have any experience with this recommendation? I’ve never seen that in any production environment (2012 R2 at least…).
Windows 2016 NUMA or ½ of NUMA NUMA or ½ of NUMA
So for example: if you have a two socket system with E5-2690v4 with 14 cores per socket and 384GB RAM, you would configure a 7vCPU and 96GB RAM VM (based on 1/2 of NUMA). Such big VMs would really cause trouble in day to day operations.
Any suggestions?
LikeLike
Hello Reinhard,
384 GB of RAM makes your machine “oversized”. If you put in one CPU with 12 8 GB Memory Modules or two CPU’s with 24 8 GB Mommory Modules you gad a hell of a machine with 7 vCPU 48 GB Mem VM’s on it.
LikeLike