Being involved with the EUC space I get to talk about virtual desktops.. A lot. Sizing them is something that gets discussed a lot but what components do we actually need in a desktop? What is the anatomy of a desktop from a ‘physical’ perspective. Although it’s going back to basics I do think it’s good to take a step back every once in a while and reevaluate decisions.
When you look at a physical desktop you’ll typically will focus on the following items:
- Disk Space
- IO (latency)
- Network interfaces
Now how do we translate these components into something that can be utilised in a virtual world? In an ideal world we define desktop needs for each and every individual but the general consensus in the VDI/SBC space is to use the following segmentation of your user population:
Image source: LoginVSI
With desktop/laptops we can easily determine the CPU, virtualization gives us the option to scale virtual CPUs. Although we can easily scale up we can only overcommit the physical CPU (pCPU) up to a certain scale, the scale is really determined by the workload. You can ramp up more task workers on one CPU (read get more vCPUs on a pCPU) than you would get Power Users on that same pCPU.
Adding CPU can be difficult even with the predefined profiles as mentioned in the LoginVSI profiles, you have to keep an eye on different factors:
Also, when adding more vCPUs to a desktop you can be affected in performance too, according to my benchmarking going from 1 vCPU to 2 vCPUs it will decrease your desktop density with about 20%. This maybe looks like a big impact, having two vCPU’s can impact user experience as multithreaded applications will perform much better, even if you want to encode video your user experience will improve with two vCPUs.
Best practise in desktop virtualisation would be not to overcommit on memory, with the introduction of vSphere 6 Transparant Page Sharing is disabled by default with possible effects on your infrastructure as Josh Odgers described here ‘The Impact of Transparent Page Sharing (TPS) being disabled by default‘.
Depending of your business needs you can provide users with the supported amount of memory by the OS vendor.
Calculating disk space can be challenging as you can do any of the following options (or even mixing them):
- Full clones
- Linked clones
All three options have their own specific storage needs in terms of effective storage being used. Full clones will take up the most storage and Streamed will use the least amount effective storage.
One thing you may want to keep in mind is the positive effects that dedup and/or compression can have on your effective storage needs. Best thing is to talk to your storage vendor to see what the best practises and results are.
Disk IO (latency)
Take time to let this sync in, how would effect your disk IO.. well, latency basically effect your desktops? Well, when your latency increases your user experience will decrease. General rule of thumb:
- 0-5ms – Great performance
- 5-10ms – Ok performance
- >10ms – What performance?
This does not really differ per user profile although the amount of read/write IO can differ per user profile, luckily modern days technology can help you with providing storage that is fast/resilient and easy to configure.
Depending the used hypervisor you could use either emulated or para-virtualised.
- Emulated:a virtual device that provides strict emulation of the Ethernet adapter. It is compatible with most 32-bit guest operating systems. This adapter is used when you select the flexible network adapter but the in guest tools are not installed in the guest operating system
- Para-virtualised: A paravirtualized device is one designed with specific awareness that it is running in a virtualized environment.
The vNIC can impact your performance in big way, if you look at the bottom graph you’ll see the difference between an emulated nic or a para-virtualised nic in terms of performance:
Image source: Rickardnobel.se
There’s a lot of commotion around GPU within VDI or even SBC but what options do we currently have? Roughly outlined the following options are there:
A lot of applications and websites (WebGL) are written with the assumption that there’s a GPU in the system, not having a GPU can impact your user experience and/or user density.
Which GPU solution will suit your organisation or maybe even just part of your organisation? The best advice I can give you here would be to do a POC with your apps and see if/how one of these solution can benefit from these options.
With all these options we’re able to provide a desktop that fits to all types of users but the main thing that determines the specific components are quite obvious:
It’s applications, users and the data they’re trying to access. Make sure that you know the needs of your organisation and it’s business drivers before sizing/architecting an VDI/SBC environment.
Latest posts by Kees Baggerman (see all)
- Updated: VM Reporting Script for Nutanix with Powershell - July 3, 2019
- Updated (again!): VM Reporting Script for Nutanix AHV/vSphere with Powershell - June 17, 2019
- Updated: VM Reporting Script for Nutanix AHV with Powershell - April 8, 2019
- How to add a CD-ROM drive and mount an ISO file via powershell to an AHV-hosted VM - March 27, 2019
- How to add a nic via powershell to an AHV-hosted VM - March 25, 2019