Windows Virtual Desktop sizing and scaling

Image: Remote desktop user by Austin Distel on UnSplash
By Mark Ison on

Windows Virtual Desktop. How should I size the session hosts?

Consideration for the number and specification of your session hosts in Windows Virtual Desktop should be no different to that of an on-premises solution. During the service setup the default machine is a D8s v3 (8 vCPUs and 32 GB memory). You then choose the number of expected users and workload load and the service will recommend the number of hosts you should use.

Image: Windows Virtual Desktop Provision a host pool screen

Changing the size of the machine will update the recommended number of machines. Any of the machine sizes in Azure are available to use, the only limitation is that all VMs in a host pool should use the same machine size.

What are the machine costs?

There are a number of factors that will be taken into consideration when projecting costs. The machine size and Azure region being the most obvious. We recommend using the Azure price calculator to get a better idea of the machine/service costs. Machines created during the host pool provisioning are automatically configured to use Azure Hybrid Benefits meaning that the OS license cost is removed.
Remember that you’ll likely be looking at worst case costs as scaling scripts and Azure Automation can help manage costs by powering on or off session hosts during peak/off-peak hours. It is also always worth remembering how simple it is to change the machines hardware with minimal impact. Start with low power machines for testing and UAT, then ramp them up when or if necessary.

Windows Virtual Desktop. How does the scaling work?

Automatic scaling in WVD is currently handled by a PowerShell scaling script that runs as a scheduled task. It is recommended that the task run on a dedicated machine but I tend to use the VM that stores the FSLogix containers. The script monitors the number of connections within a host pool and decides if additional hosts are required based on configurable CPU loads during peak times (cores to user ratio). During off-peak hours, the script will begin putting machines in to ‘drain mode’. This prevents new connections to the host and advises active users that their session will be signed out after a set period of time. Once all sessions have been terminated the unneeded hosts will be shut down. All parameters needed by the script are passed in through a .json configuration file.
It is expected that scaling will be managed using Azure Automation in future service updates.

Stay tuned for Part 4 where we will discuss host images and customisation.

What’s next?

We host regular events so please do check our schedule of current seminars, webinars and events.  We also post regular blogs on the latest updates and expert advice on Microsoft 365, Cloud and Hybrid IT, User Adoption and the Power Platform, so please do follow us.

Please do use the form below to get in touch with any questions or queries.

Contact us

  • This field is for validation purposes and should be left unchanged.

We have the expertise and the experience to provide specialist solutions and drive your business forward

Get in touch