Home / Nerdio Academy – Enterprise / Blogs - Enterprise / 6 Cost Reduction Strategies for Azure Virtual Desktop 

6 Cost Reduction Strategies for Azure Virtual Desktop 

Vadim VladimirskiyFounder & CEO, Nerdio
0 comments
Enterprise
September 13, 2021Articles

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.

 

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!

Nerdio Manager for Enterprise

Nerdio Manager for MSP