Skip to content


How Consistent Cloud Management Drives Workload Optimization

Note – Microsoft announced the rebrand of Windows Virtual Desktop (WVD) to Azure Virtual Desktop (AVD) in June 2021. Read more about that here.

Information technology and “the cloud” are in no shortage of buzzwords and acronyms.  String enough abbreviations together and even the best of us risk losing parts of a conversation.  Consistency in the management of cloud solutions is critical to get to the optimal performance of Azure Virtual Desktop (AVD) workloads in Azure.  There are many paths to “good enough” and “works for the most part”, but when you place “optimal” in the sentence, it embodies the requirement to bring nothing but the very best of everything.  While we can’t cover every topic to get there, we will cover many topics that simplify and place importance on some fundamentals, that when done really well, will lead to a level of optimization.  Much like abbreviations, string enough of these together and you will have, in every sense of the words, workload optimization.

Whether you have vast experience or are getting started with AVD, the topics we discuss will either reinforce current methods or create learning and application opportunities.  In this article we will cover AVD pool management, Microsoft Azure resources, auto-scale, and user profile management.   

AVD Pool Image Management

While there are several aspects to a Azures Virtual Desktop pool, the focus here is around the best practice and optimized use of image templates when orchestrating hosts within a AVD pool.  The building blocks for properly managing a template can be broken into three distinct categories.

  1. Windows 10 Enterprise Virtual Desktop (EVD) Operating system and updates
  2. Microsoft 365 and Common applications and updates
  3. Common line of business applications (LOBs)

I will break each of these down as they have a direct impact on workload optimization when management is consistent and measurable.

Windows 10 EVD

While tailored specifically for desktops in Azure, is simply recognized as Windows 10 Enterprise and follows the best practices and methods for management that have been used for years.  Feature updates are released twice a year with updates occurring on the second and sometimes fourth Tuesday of the month (patch Tuesday).  It is this cadence, that when managed well, will optimize a host of different factors around the OS, performance, security, end user experience, etc. 

Feature updates should always be taken as an opportunity to test before deploying fully to the end user population.  Nerdio often recommends cloning a current pool and performing the update on the clone pool.  Here, testing can be performed and can eventually include a small segment of the end user base for further testing and validation.  Once the new OS is accepted as viable, we often recommend moving users to the newly cloned pool that can be crafted to include the appropriate number of hosts to satisfy the capacity of the base.  Once the users are assigned to the new pool, the former pool with older OS features can be destroyed.  Nerdio has several optimization features that can be used to accelerate the process of assigning users to the new pool.

General patch Tuesday updates should be met with some scrutiny in terms of applying those updates to the templates for a AVD host pool.  Security updates, as per best practice, should be vetted and applied first with the additional updates scrutinized for level of impact and utility.  Once updates have been applied, some testing should occur in the current pool.  After acceptance, the hosts can be created to pick up capacity while allowing the older hosts to naturally drain users and eventually be destroyed.  In some cases, a pool can sit out a cycle if there are no major security or feature patches.  Establishing a cadence to manage templates is recommended and can be a scheduled part of planned maintenance.  Thirty days would certainly be the minimum and would allow the normal Microsoft cadence to be fully observed.  Microsoft’s feature updates have a published schedule and can be met with some levels of readiness and planning to vet through any standards and methods.  It is this consistency which also allows for higher probabilities of success in other managed environments in terms of supported operating systems. 

Microsoft 365, LOBs and FSLogix Tools

This is a great segue to go from the operating system into the licensing that allows end users to access the AVD resources.  Insert M365; M365 is a license that satisfies the AVD Windows 10 Enterprise requirement while also including Office Business or ProPlus.  Given the ease of licensing and the bundles it includes, having Office installed on the template is an easy decision.  This is one application that make perfect sense to have installed and can be done in such a way to follow simple updates when the Semi-Annual channel installation is followed.  The Semi-Annual Channel (Targeted) is also an option, however, Microsoft best practice and recommendation is that channel is used on a fraction of the total end user base.  Semi-annual is easy to maintain due to its frequency and can become a staple on the image templates for AVD host pools.

While Office Business has typically been a single-user session application, M365 Business Premium does entitle multi-user session capabilities via the management of some minor registry changes.  With that in mind, having consistent licensing will ultimately influence the delivery and install of the Office Suite of applications.  In rare instances and accounts that have many sessions hosts in a pool, having two office versions is possible, however, it does add some complexity with the assignment of licenses and users to AVD host pools.  In this instance, less (options) is more and becomes easier to manage and scale AVD environments.

Line of business applications would be the one item that is more specific to the customer and less about the standards and support items specific to the MSP.  LOBs can be installed on a pool image template with the users using those applications spread across multiple pools by LOB application.  An example would be general users are on Pool-A, while the accounting group is on Pool-B – where the accounting application is installed.  Based on concurrency numbers from users, this setup is not optimized, as the resources to accommodate multiple pools does not scale and can carry additional unnecessary costs.  The remedy to this situation preserves consistent pool template management by installing all of the applications on the template, grouping everyone together in the same pool and using FSLogix application masking to only show the applications to users belonging to a specific group.  In this optimized configuration, pool resources are scaled to full user population, the template is optimized for easier management, and users will only see the applications they need to see based on group membership.  

Another service called MSIX app attach, as it gains popularity and resources (vendors providing MSIX packages), will ultimately lead to better and more efficient application management.  Applications will be able to leverage centralized management (consistent and current delivery) and will be made available by user or group delivering applications dynamically.  MSIX app attach became available on Windows 10 Ent version 2004. 

Resources and Auto-scale

We have progressed from looking at the operating system and applications and will now discuss the underlying resources and virtual machines.  Anyone who has ever looked and reviewed all of the available series VMs in Azure could be overwhelmed, to say the least.  Fortunately, when it comes to delivering and managing VMs in AVD host pools, there are consistent series VMs that are staples in every environment.  Here we will scale down the options and make managing pools that much easier.

Microsoft has broken down VM sizes and series by groups.  These intuitive groups are as follows:

  • General purpose
  • Compute optimized
  • Memory optimized
  • Storage optimized
  • GPU – accelerated compute
  • FPGA – accelerate compute
  • High performance compute

In a standard and flexible AVD pool, we will focus on the sizes appropriate for multi-session host pools.  This would include general purpose, memory optimized, and GPU accelerated.  Everything else is well suited for databases, application serving, AI, etc. 

Within those three sizes, we can start to break down what is useful and appropriate and what is not useful.

  • General Purpose
    • A-series – used for dev ops and have no ability to have reserved instances, highly under resourced
    • B-series – used for light workloads where compute and memory consumption are consistent and does not have direct interaction with end users, first hour after boot will have throttled CPU and credits need to build up to burst to full CPU utility
    • D-series – a series with a core to memory ratio of 1 to 4, great series to use with RemoteApp pools, good series to use with desktops where memory intensive applications like internet browsers are minimized or have good memory consumption and management
  • Memory Optimized
    • E-series – as series with core to memory ratio of 1 to 8, the added memory is a fraction of the cost to upgrade a VM to a higher series that adds both CPU and memory, great for high memory consumption where applications and internet browsers compound over time
    • M-series – boosted memory for database applications where cache can be leveraged to optimize performance of the DB
  • GPU Accelerated
    • NC and ND – optimized for serving applications that can leverage GPU processing and machine learning applications, application servers
    • NVv4 – NV, NVv3 and NVv4 are optimized for remote visualization where applications can leverage GPU processing (design, engineering, 3D, etc.). NV and NVv3 leverage Intel and Nvidia where NVv4 leverage AMD and Radeon.

With the VM size groups defined, we are left with D, E, and NV series as being the clear front runners when provisioning hosts within a pool.  Pairing down the options within those sizes by cores further reduces the number of options as 4, 8, and 16 core machines would be the ideal configuration for distribution of users across multiple hosts.  Distributing users across multiple hosts will reduce end user impact for an organization if a host were to have challenges.  Better to have 15% of users with issues as opposed to 50% if a larger VM was used and could allow for more user sessions.  Distributing users and having clear boundaries for host capacity is particularly important with a consistent managed AVD offering. 

Now that we have narrowed down the potential VM series for a AVD host pool, we will step out of the technical and will move to the economics of those resources.  Managing costs is equally as important.  Since Azure billing is a factor of metered consumption, any ability to minimize those costs while preserving end user performance is ideal.  There are two items that will allow for the dynamic nature of a host pool (especially pools for a larger user base).  Leveraging both Reserved Instances and auto-scaling are great ways to maintain performance while optimizing the economics and resources. 

The default metering within an Azure environment is pay-as-you-go (PAYG).  Time is metered and Azure bills per the hourly rate of the resource.  To create region predictability, Microsoft values the consistency of knowing what resources have a committed purchase and offer a discount to get that commitment by offering Reserved Instances (RI).  Reserved instances can be applied to any of the VM series we highlighted above.  Over a 1- or 3-year term, providers can pay for committed resources monthly with a significant discount.  Simply stated, a reserved instance is the purchase of resources over a committed period; 1- or 3-years. 

While purchasing RI may come at a significant discount, in many cases the variability of the end user concurrency will offset any of the savings.  An example of this would be RI for 10 AVD 8 core session hosts where only 20 people out of 100 log in that day.  The host capacity exceeded the demand and could have easily been turned into savings.  This is where managing with a hybrid approach that uses auto-scaling and RI will optimize resources and economics.  To extend our prior example in a hybrid approach, having RI on 2 hosts with the remaining 8 on auto-scale would optimize end user performance and economics at the same time.  As the end user demand changes, auto-scale provisions or boots PAYG resources to meet the demand.  When the demand is removed, the resources are removed or deallocated and the PAYG meter stops.  Having both RI and auto-scale applied to hosts in a pool will optimize the end user experience, while also providing substantial cost savings.

User Profile Management – FSLogix 

While FSLogix is an application used to manage user profiles, its role inconsistent management to optimize AVD workloads is worthy of mention.  Where proper management comes into play is around the VHDX profile disks and the storage requirements needed to ensure end user performance.

Managing the profile size has a direct impact on the performance of a user’s session.  The current default and best practice is a maximum size of 30GB.  Having methods of procedures to monitor and/or manage profile disks and those users approaching the limit will help to avoid issues and optimize end user experience.  While the virtual disk can certainly be expanded beyond defaults, the better solution is to follow the defaults for consistency and identify the elements that are causing the profile bloat.  On average, a user profile will typically be between 12 and 15GB.   

Much like having virtual profile disks within thresholds, the same would apply to the storage managing those profiles.  Throughput and IOPS is crucial to create the expected end user experience.  As the saying goes, “you can’t manage it if you can’t measure it”.  This raises the importance of having some reliable cadence as to the performance of the storage being used, managed disks or Azure files, monitoring and validating proper thresholds and measures will facilitate performance issues before they manifest into bigger problems. 

Why Nerdio?

We have covered a lot of ground here when it comes to consistent management to optimize workloads.  We have looked at both technical and economic factors that when done consistently will lead to positive results and customer/end user satisfaction.  While many of these concepts are applicable in and around Azure natively, it is worth identifying that the core of Nerdio is and will continue to be rooted on optimization.  In the case of Nerdio products, the orchestration for many of the concepts covered in this article provide reliable and efficient means to align with the outcomes expected when consistent management is employed.  The flexibility and ease with which Nerdio products can align with procedures and policies makes it a good fit and added accountability when meeting the demands of customers. 

Try Nerdio Manager for Enterprise out today for free!


Multi-Cloud and On-Premises Deployment with Azure Stack HCI (Coming Soon)

Deploy Azure Virtual Desktop in Azure and extend the session host VM placement to on-premises and other cloud using Azure Stack HCI. Nerdio Manager automates deployment of session hosts, AVD agent installation, and full integration into the AVD deployment in Azure.

Create a brand new Azure Virtual Desktop environment or allow Nerdio Manager to discover an existing deployment, connecting to existing resources, and manage them.

Deploy Nerdio Manager from Azure Marketplace and configure a new AVD environment with an easy to follow, step-by-step configuration wizard. First group of users can access their AVD desktop in less than 2 hours.

Service providers, system integrators, and consultants can leverage Nerdio Manager’s scripted AVD deployment template. Create complete environments with desktop images, host pools, and auto-scaling in minutes.

Create and manage AVD environments that span Azure regions and subscriptions. Quickly link Vnets and resource groups and manage AVD deployments world-wide from unified portal.

Link multiple Azure tenants under the same Nerdio Manager instance and manage AVD deployments that span Azure AD tenants. User identities and session host VMs can run in separate tenants for maximum flexibilty and security.

Deploy and manage AVD environments that span across sovereign Azure Clouds. Cross-sovereign cloud support allows identity (e.g. users and groups) to be in one Azure Cloud, while session host VMs are in another Azure Cloud.

Management of workspaces, host pools, app groups, RemoteApps & custom RDP settings

Administer every aspect of AVD with Nerdio Manager including workspaces, host pools, application groups, RemoteApp publishing, RDP properties, session time limits, FSLogix, and much, much more. Every Azure service that AVD relies on can be managed with Nerdio Manager.

Deploy and manage AVD session host VMs. Hosts can be created manually or with auto-scaling, deleted on-demand or on a schedule, re-imaged to apply updates, run a scripted action, resized, put into or taken out of drain mode, and more.

Manage user sessions across the entire AVD environment, within a workspace, host pool or on a single host. Monitor session status, disconnect or log off the user, shadow or remote control to provide support, or send user an on-screen message.

End users have the ability to log into Nerdio Manager with their Azure AD credentials and manage their own session, restart their desktop VM, or start a session host if none are started in a host pool. (Ability to resize and re-image own desktop is coming soon.)

Create, link, and manage Azure Files shares including AD domain join. Synchronize Azure Files permissions with host pools, configure quotas, and enable SMB multi-channel. Manage file lock handles and configure Azure Files auto-scaling to increase quota as needed.

Create, link, and manage Azure NetApp Files accounts, capacity pools and volumes. Configure provisioned volume size, monitor usage, and use auto-scaling to automatically adjust volume and capacity pool size to accommodate the needed capacity and latency requirements.

FSLogix configuration can be complex and overwheling, but not with Nerdio Manager. Create one or more FSLogix profiles with all the needed options, point at one or more Azure Files, Azure NetApp Files, or server locations and select from VHDLocations, CloudCache and Azure Blob storage modes.

Multiple identity source profiles can be set up and used automatically on different host pools. Active Directory, Azure AD DS, and Native Azure AD are all supported. Choose the appropriate directory profile when adding a host pool and all VMs will automatically join this directory when being created.

Create a copy of a host pool with all of its settings: auto-scale config, app groups and RemoteApps, MSIX AppAttach, user/group assignments, VM deployment settings, etc. Save time by creating host pool “templates” that can be cloned to any Workspace, Azure region or subscription instead of starting from scratch.

Apply user session time limits at host pool level. Automatically log off disconnected sessions, limit the duration of idle sessions, control empty RemoteApp session behavior and more.

Assign Azure AD users to personal desktops to ensure the user will log into a pre-configured VM. Un-assign personal desktops from users who leave the organization and re-use these VMs for new users.

Pre-configure custom Azure tags for all Azure resources associated with each host pool. Tags can be used for charge-back and cost allocation by host pool.

When creating session hosts using NV-series VMs NVIDIA and AMD GPU drivers are automatically installed.

Move existing host pools from Fall 2019 (Classic) object model to Spring 2020 (ARM) object model. Choose to whether to move or copy user assignments. Existing session hosts are automatically migrated or new ones can be created in the ARM host pool.

Automatically enable and configure AVD integration with Azure monitor. Zero configuration required. Azure Monitor Insights for AVD can be used instead of or in conjunction with Sepago Monitor.

AVD personal desktops to Windows 365 Cloud PC migration (Coming Soon)

Migrate users from AVD personal desktops to Windows 365 Enterprise Cloud PCs using an existing image and user assignment. (Coming soon)


Cloud PC License Usage Optimization (Coming Soon)

Cloud PC device lifecycle management

Cloud PC user group assignment

Intune primary user management on Cloud PCs

Migrate AVD personal desktops to Cloud PCs (Coming Soon)

Get Certified