Sizing Windows 2016, Windows 2012 and Windows 10 Virtual Machines


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

 

 

Advertisements

One thought on “Sizing Windows 2016, Windows 2012 and Windows 10 Virtual Machines”

  1. 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?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s