I’ve been writing a series about Microsoft Windows 10 and how we can tune and deploy it in a VDI environment. Microsoft Windows 10 and to be more specific the 1607 build is some piece of work. I’ve been working in this field for a number of years, first VDI environment I set up was in 2008 and we need to rethink our sizing. Back in 2008 sizing was a huge issue as the 10k and 15k disk could only deliver that much IOPS, Citrix and VMware both had white papers that showed wrong numbers on read/write percentage as their use case was call centre based. We learned the hard way with some co-workers digging in and writing white papers that told the true story, 80-95% write and just a little bit of read in a production VDI environment for our customers with 8-10 apps open all day.
Disk alignment for Windows XP, everyone ever deploying a VDI environment with Windows XP knows what I’m talking about. Microsoft Windows 7 changed things and at first, we also thought XP was better to tune. Now with Microsoft Windows 10 1607, we see resources soar higher than ever before and we need to rethink our sizing to make sure we can guarantee performance to customers. I’ve been digging in and talking to customers and co-workers and this is my thought on this.
This series consists of a couple of articles
- Microsoft Windows builds, versions – Click here
- Creating the virtual machine – Click here,
- Installing Windows 10 – Click here.
- Tuning Windows services and scheduled tasks – Click here.
- Deploying the golden image (coming soon…. )
- Resource usage of Windows 10 in a VDI environment, you are reading it
Resources notes from the field
Sizing of a VDI environment hasn’t changed, a desktop is still a desktop and you need CPU, RAM and IOPS. So when we size a VDI environment we calculate based on the type of user;
- Task worker
- Knowledge worker
- Heavy worker
- CAD worker
If we look at resource usage we see that these worker categories used to fall into the following categories (a bit from memory);
- Task Worker: 1 vCPU, 2GB RAM, 300MHz
- Knowledge worker: 2 vCPU, 2-4GB RAM, 500MHz
- Heavy worker: 2 vCPU, 4GB RAM, 800MHz
- CAD workers: 2-4 vCPU, 8GB RAM, 800MHz
These numbers were valid with Microsoft Windows 7 and I for one used that often in my designs. They worked fine, most our customers have 70/30 on heavy and knowledge workers, we don’t see the light or task worker that often. With Microsoft Windows 10 it seems that we need to reset the numbers. I’m using 1607 and I spoke to others that also use 1607 in VDI, 1607 is similar to the anniversary edition but with the crapplications like Edge. This edition it seems will need to be designed with the following number;
- Task workers: 2 vCPU, 4GB RAM, 800MHz
- Knowledge worker: 2 vCPU, 4GB RAM, 1000-1200MHz
- Heavy worker: 2 vCPU, 4-6GB RAM, 1500MHz or even higher
- CAD Worker: (have to monitor them to get a good number there)
There are a few thumb rules to keep in mind starting with Microsoft Windows 10 1607, these thumb rules come from our experience;
- Never use less than 2 vCPU’s, Windows 10 no matter if you like it will be able to please anyone.
- Less than 4GB of RAM will also never please anyone
- 4GB of RAM is a good number for most knowledge workers and heavy worker we see in the field.
When Microsoft Windows 10 starts up and the user logs on CPU usage can go up to 6000 MHz for a period of time, make sure you have that kind of resource available.
Memory, one day overview
We monitor the environment during the day to keep track of it, we have an issue right now with Office 2013 and Windows 10 but more on that in a next blog
Below you see the memory usages of a default desktop over the course of a day, is stays stable. We hardly ever see any desktop with more memory usage than this one. 4GB of RAM seems to be enough for most use cases when sizing.
CPU – MHz
The most important resource to do the sizing on is the CPU, CPU is the bottleneck in most environments as you can easily ship in more IOPS or add more RAM but add more CPU often means add a node or a host. As you see below, and this is a normal user, usage of CPU goes up to over 1500MHz and as you see it stays there for most of the day.
If we look at the overall memory of the host, one host we see that memory usage of the host is never that high. As you can see the top of the screenshot is 100% and the dark line is around 50%. Memory is no issue in this environment, same goes for IOPS.
If we look at host CPU we see that the host is busy during the day. Most hosts are around 90% all day long. We noticed some things in our software offering in the environment that might be causing this but even without that issue the default CPU resource usage is somewhere between 800 and 1600MHz.
My next blog will be a short one with the findings of our issue at a customer site. I got some more info after testing.
Hope this blog helps you when you design a VDI environment. Times are a changing as someone sang years back.. and Windows 10 with every build is certainly keeping us active.