Skip to content

Academy

6 Cost Reduction Strategies for Azure Virtual Desktop

When speaking to new Nerdio customers, we mention that an average Azure Virtual Desktop (AVD) customer saves 50%-75% on Azure compute and storage with Nerdio Manager’s cost optimization technology.  This data point is sometimes dismissed as “marketing-speak” or something that’s only true in rare, unique cases.  

This article outlines 6 cost reducing strategies delivered by the Nerdio Manager platform that lower the costs of a typical AVD deployment by more than 80%.  Although mileage may vary from one environment to the next, these significant cost savings are real and supported by data from thousands of Azure Virtual Desktop deployments managed with Nerdio Manager. 

What are the typical Azure Virtual Desktop costs? 

By analyzing several thousand Nerdio AVD deployments with well over a million users and ranging in size from a handful of desktops to tens of thousands of active users, we see that the primary costs of Azure Virtual Desktop fall into the following categories: 

  1. Compute (VMs used as session hosts) – 70% 
  2. OS disks storage (managed disks attached to session host VMs) – 12% 
  3. FSLogix storage (Azure Files or Azure NetApp Files hosting user profiles) – 9% 
  4. Networking (egress bandwidth, VPN gateways, global VNet peering) – 3% 
  5. Other (images, Log Analytics, Azure Automation, backup) – 6%

The first three categories (VMs, OS disks and FSLogix storage) account for more than 90% of the total and we will focus on these three categories of costs.  Optimization of the “Networking” and “Other” categories is also possible but because the cost reduction impact is low relative to the total, we won’t cover it here. 

AVD environment example and assumptions 

To perform the analysis, we will select a sample use-case representing a common way to deploy AVD. First, we’ll calculate the “unoptimized” per-user cost representing the most common way we see Azure Virtual Desktop deployed before adding Nerdio Manager into the mix.  We will then layer on Nerdio’s 6 optimization strategies and see the cost reduction impact of each.  Finally, we’ll summarize the results in an easy-to-use reference-able table. 

Here are the assumptions we will use for our sample AVD deployment: 

  • Number of users: 192 (Somewhat of a strange number but was selected to make the math a little easier.) 
  • User type: Heavy (per-Microsoft definition this means 2 users per vCPU) 
  • Session host VM size: D8s_v4 (common VM used in AVD environments) 
  • OS disk: P10 – 128 GB Premium SSD (common disk size used in multi-session deployments) 
  • FSLogix profile size: 20 GB (stored on Azure Files Premium) 
  • Hours in typical work week: 50 (10 hours per weekday) 
  • Azure pricing: South Central US (list pricing) 

Let’s now calculate the “unoptimized” cost for this deployment:   

  • Compute: $4,038 
    • 12 D8s_v4 VMs are needed to support 192 users (16 users per VM) 
  • OS disks: $215 
    • Each of the 12 VMs needs a P10 SSD disk 
  • FSLogix storage: $737 
    • 20 GB per user at $0.19 per GB 
  • Total: $4,991 ($26/user) 

This is how AVD is typically deployed.  Even without cost optimizations, the cost per user is $26/month, which is very attractive.  However, we can do MUCH better.  Let’s see how low we can take the cost.

Strategy #1: VM Power Management 

Since the compute cost of session host VMs is by far the largest cost component, we’ll start there.  Because users are accessing their desktop only 50 hours/week (per assumption above), there is no reason to keep the VMs on and running the compute meter 24/7.  Instead, we can use Nerdio Manager’s auto-scaling capability to automatically turn VMs on at the beginning of the day (or upon user login) and turn them off once they are no longer needed at night and on weekends.  If users need to connect outside of standard business hours, they can still do so, and the system will automatically make a desktop available to the user even after- hours. 

  • Compute: $1,202 (reduction of $2,836 or 70%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs. 
  • OS disks: $215 (no change) 
    • Even when VMs are powered off the OS disks are still incurring costs 
  • FSLogix storage: $737 (no change) 
    • Even when VMs are powered off the storage of user profiles is incurring costs 
  • Total: $2,154 ($11.22/user)

Implementing the power management strategy reduces the compute cost component and the total per user cost is decreased by 57% as compared to the unoptimized scenario.

What about Reserved Instances (RIs)?  More on this below (strategy #3), but RIs save between 40% and 60% on compute (depending on 1-year or 3-year reservation terms), whereas auto-scaling in this case saves more (70%).  Plus, with auto-scaling and pay-as-you-go pricing you don’t have to make a long-term commitment to a VM family or Azure region.  This makes the AVD deployment more flexible.

Strategy #2: Just-in-time Provisioning (burst capacity) 

While we can save a significant amount by simply powering VMs off when not in use, the OS disks associated with the powered off VMs are still running up the bill.  Using Nerdio Manager’s “burst capacity” just-in-time (JIT) provisioning capabilities, we can remove some (or all) of the VMs that are not in use and save on the cost of the OS disks when users are not logged in.  For the analysis below, we’ll assume that 50% of the VMs (6 in our case) will always exist (base capacity) and the remaining 6 (burst capacity) can be created automatically only as needed and deleted when no longer in use.  We can also have all VMs automatically deleted when not in use and re-created on demand but keeping a few “base capacity” VMs around makes the VM creation process transparent to the users since this happens in the background after users are already logged into the “base capacity” VMs. 

As a side benefit of JIT burst capacity configuration, we’ll ensure that our session hosts are always in their “pristine” state and avoid configuration drift that happens when session hosts aren’t rebuilt regularly from the image.  Burst capacity will delete and re-create half of the VMs each day and ensure that all VMs are being rebuilt from the latest image version on a regular basis. 

  • Compute: $1,202 (reduction of $2,836 or 70%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs. 
  • OS disks$140 (reduction of $76 or 35%) 
    • 6 of the VMs with their OS disks will be deleted when not in use and the OS disks will no longer incur storage costs until the VMs are re-created. 
  • FSLogix storage: $737 (no change) 
    • Even when VMs are powered off, the storage of user profiles is incurring costs. 
  • Total: $2,079 ($10.83/user) 

Implementing the just-in-time, burst capacity auto-scaling strategy reduces the OS disk cost component, and the total per user cost is decreased by 58% as compared to the unoptimized cost.

Strategy #3: Three-year Reserved Instances + Auto-Scaling 

As mentioned above, auto-scaling PAYG VMs typically saves more than using RIs for all these VMs.  But what if you could combine auto-scaling to get the 70% compute cost reduction and add RIs to save an additional 60% on the remaining compute costs?  With Nerdio Manager’s RI Analytics, you can do just that. 

Reserved Instances are typically purchased for all, or almost all, session host VMs in an AVD deployment.  However, once compute capacity has been reserved and pre-paid, auto-scaling no longer makes sense from a cost reduction perspective.  There is a more efficient way to use RIs than reserving all compute capacity. 

First, implement auto-scaling to reduce the total number of hours the VMs are turned on.  In our example, that’s 50 hours out of 168 each week.  In most real-world scenarios, the number of hours is even lower because not all users log in at the beginning of each day and not all users log off all the way at the end of the day.  The capacity “ramps up” and then “ramps down” with fewer hours when all CPU cores are utilized.  This is where Nerdio Manager’s RI Analytics comes in.  After observing a week or more of auto-scale behavior, Nerdio Manager will recommend the number of CPU cores to reserve based on actual usage.  This means the total number of compute hours is first reduced by auto-scaling and then the cost is further reduced by reservations for those remaining hours.  

  • Compute: $457 (reduction of $3,582 or 89%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs.   
    • Applying RIs to the remaining 50 hours of 12 running VMs reduces the overall compute costs by 89%. 
  • OS disks: $140 (reduction of $76 or 35%) 
    • 6 of the VMs with their OS disks will be deleted when not in use and the OS disks will no longer incur storage costs until the VMs are re-created. 
  • FSLogix storage: $737 (no change) 
    • Even when VMs are powered off the storage of user profiles is incurring costs. 
  • Total: $1,333 ($6.94/user)  

Combining power management, just-in-time VM creation and 3-year reservations reduces the per-user cost by 73% as compared to an unoptimized AVD deployment.

https://youtube.com/watch?v=M3loAHtXGqQ%3Fenablejsapi%3D1%26origin%3Dhttps%253A%252F%252Fgetnerdio.com

Strategy #4: OS Disk Auto-scaling 

We’ve already saved 35% on OS disk storage costs by implementing Strategy #2 and using auto-scale burst capacity.  However, 6 VMs are remaining as base capacity (to allow for faster boot up times) and these VMs aren’t always on.  While started, all VMs have a high performing, but expensive, premium SSD disk (P10).  But when the VMs are stopped, using a premium SSD is wasteful.  Wouldn’t it be nice to automatically convert the OS disk of all stopped VMs to a cheaper standard HDD (75% cheaper than premium SSD)?  With Nerdio Manager’s OS Disk Auto-scaling, that’s exactly what happens. 

When configuring auto-scaling on a host pool in Nerdio Manager, you specify the “running OS disk type” and “stopped OS disk type”.  The auto-scale engine will automatically convert the expensive Premium SSD to cheaper Standard HDD as soon as the VM is stopped (e.g. after hours) and convert it back to Premium SSD right before the VM is started back up. 

  • Compute: $457 (reduction of $3,582 or 89%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs.   
    • Applying RIs to the remaining 50 hours of 12 running VMs reduces the overall compute costs by 89%. 
  • OS disks$89 (reduction of $126 or 59%) 
    • 6 of the VMs with their OS disks will be deleted when not in use and the OS disks will no longer incur storage costs until the VMs are re-created.   
    • Remaining 6 VMs’ OS disks will be converted to Standard HDD when stopped and back to Premium SSD when started back up. 
  • FSLogix storage: $737 (no change) 
    • Even when VMs are powered off the storage of user profiles is incurring costs. 
  • Total: $1,283 ($6.68/user) 

We’ve now accounted for 4 cost reduction strategies and the AVD cost has plummeted 74% as compared to an unoptimized deployment.  We’re not done yet.

Strategy #5: Shrink VM OS Disk From 128 GB to 64 GB 

All Azure Gallery Windows 10 and 11 images come with a 128 GB OS disk.  This means that even though there is plenty of free space on the C: drive, we’re still paying for this extra space.  The cost of a 128 GB OS disk is 100% more than a 64 GB OS disk of the same storage type.  Nerdio Manager can reduce the size of the default 128 GB OS disk to 64 GB and save 50% on the OS disk storage. 

In multi-session, pooled environments no data is being stored on the C: drive and all user data is redirected to the FSLogix file share.  Also, since VMs are being regularly deleted and re-created from the image, there is no growing disk space consumption on the system drive.  You can also layer on just-in-time provisioning and OS Disk Auto-scale with disk size reduction. 

  •  Compute: $457 (reduction of $3,582 or 89%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs.   
    • Applying RIs to the remaining 50 hours of 12 running VMs reduces the overall compute costs by 89%. 
  • OS disks$46 (reduction of $169 or 79%) 
    • 6 of the VMs with their OS disks will be deleted when not in use and the OS disks will no longer incur storage costs until the VMs are re-created.   
    • Remaining 6 VMs’ OS disks will be converted to Standard HDD when stopped and back to Premium SSD when started back up. 
    • OS disk size reduced from default 128 GB to 64 GB for all VMs. 
  • FSLogix storage: $737 (no change) 
    • Even when VMs are powered off the storage of user profiles is incurring costs. 
  • Total: $1,240 ($6.46/user) 

With one more cost reduction strategy to go we’re already up to 75% savings relative to an unoptimized AVD deployment.

Strategy #6: FSLogix Whitespace Reduction and Azure Files Auto-scale 

The final cost reduction strategy focuses on the remaining large cost component of AVD – FSLogix storage.  FSLogix user profiles are VHD(X) files stored on a file share.  In this example, we’re assuming that these VHD(X) files are stored on an Azure Files premium share.  The performance of the file share is critical in ensuring a high-quality end-user experience and the performance of Azure Files is determined by the provisioned quota, regardless of actual space usage. 

FSLogix profiles are “thin-provisioned” VHD(X) virtual disks. This means that they grow once data is added to the user profile, but they never shrink.  Even if contents are deleted from inside of the VHD(X) file, the size of the file remains the same and can only grow.  This obviously leads to expensive wasted storage space on Azure Files premium. 

To address this inefficiency and reduce the cost of Azure Files premium, Nerdio Manager can remove white space from FSLogix profiles.  This process can be scheduled to run on a regular basis (e.g. weekly or monthly) and typically results in 50% space usage reduction.  However, reducing space usage is not sufficient since Azure Files premium costs are determined based on provisioned quota, not actual usage.  Nerdio Manager’s storage auto-scaling helps here.  It automatically adjusts the provisioned quota on Azure Files premium shares based on available free space and storage latency.  If latency increases due to insufficient performance, Nerdio Manager will automatically increase the provisioned quota to increase performance and decrease it when it’s no longer needed. 

  •   Compute: $457 (reduction of $3,582 or 89%) 
    • 50 work hours is 30% of the total 168 hours in a week.  Keeping VMs on 30% of the time means that the remaining 70% of the time we’re saving on VM compute costs.   
    • Applying RIs to the remaining 50 hours of 12 running VMs reduces the overall compute costs by 89%. 
  • OS disks: $46 (reduction of $169 or 79%) 
    • 6 of the VMs with their OS disks will be deleted when not in use and the OS disks will no longer incur storage costs until the VMs are re-created. 
    • Remaining 6 VMs’ OS disks will be converted to Standard HDD when stopped and back to Premium SSD when started back up. 
    • OS disk size reduced from default 128 GB to 64 GB for all VMs. 
  • FSLogix storage$369 (reduction of $369 or 50%) 
    • Storage consumption is reduced by 50% by running scheduled white space removal process. 
    • Performance and free space are balanced with costs using Nerdio Manager storage auto-scaling for Azure Files. 
  • Total: $871 ($4.54/user)

After applying Nerdio’s 6 cost reduction strategies using Nerdio Manager, the cost was reduced by 83%!  Going from the typical, unoptimized monthly per user cost of $26 down to $4.54 is incredible.  Once we add in the Nerdio Manager license cost of $3 per monthly active user the annual user cost is $90.  This is by far less expensive, more secure, more flexible and versatile, and easier to maintain than any physical device. 

An average Nerdio Manager customer pays for the monthly license within the first 6 days of each month with Azure compute and storage savings.  The remaining days of savings help reduce per-user costs making AVD the most cost-effective virtual desktop solution on the market.

Learn more about Nerdio Manager and get started for free!

AVD MANAGEMENT

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)

WINDOWS 365 ENTERPRISE MANAGEMENT

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