Skip to content

Sizing Azure Files for Azure Virtual Desktop and FSLogix

Technical Article

A remastered guide to sizing Azure Files for Azure Virtual Desktop and FSLogix, using current Microsoft guidance around concurrency, handles, storage tier, and login performance.

Categories
MicrosoftAvd
Tags
Azure FilesFslogixAzure Virtual DesktopProfile ContainersStorage

Hero image for Sizing Azure Files for Azure Virtual Desktop and FSLogix

This post originally pointed to a simple spreadsheet calculator for sizing Azure Files for FSLogix on Windows Virtual Desktop.

The core idea was right: profile storage has to be sized for concurrency and performance, not just capacity.

What has improved since then is the official guidance. Microsoft now documents Azure Files sizing for virtual desktop workloads much more clearly, which means this article can move beyond a one-off spreadsheet and explain the architecture decisions that actually matter.

The sizing question has changed

In 2020, many teams were still asking a fairly simple question:

How large does my Azure file share need to be so sign-in and sign-out do not fall over?

That is still part of the answer, but it is no longer enough on its own.

For Azure Virtual Desktop, you now need to think about:

  • peak concurrent users, not just total assigned users
  • whether you use FSLogix profile containers only, or separate Office containers as well
  • the chosen Azure Files tier and billing model
  • file and directory handle limits
  • whether login storms and metadata-heavy activity dominate the workload
  • whether the storage sits in the same region as the session hosts

In other words, “how many terabytes?” is the wrong first question. The better first question is “what does this workload do during sign-in, steady state, and peak concurrency?”

Why Azure Files still makes sense

Azure Files remains one of the best default choices for Azure Virtual Desktop because it is fully managed, integrates cleanly with FSLogix, and avoids the overhead of building and operating your own file services.

It is not the only option. Azure NetApp Files is still a strong fit for larger or more demanding environments. But for many general-purpose AVD deployments, Azure Files provides the right balance of simplicity, availability, and performance if it is sized correctly.

Start with concurrency

The original calculator focused on concurrent users, and that part still holds up well.

That is because FSLogix profile containers are not a pure storage-capacity problem. They are a concurrency problem:

  • how many users sign in at once
  • how much metadata activity happens during sign-in
  • how many handles are consumed per profile
  • how much steady-state IOPS the users generate once they are in session

If you size only for total storage consumed by profiles, you can still end up with a poor sign-in experience, slow profile attach times, or file-share contention.

The current Azure Files guidance for FSLogix

Microsoft’s current guidance is more explicit than the older rule-of-thumb approach.

For FSLogix profile containers on Azure Files:

  • each user typically consumes a small number of handles
  • a single share can support large numbers of concurrent users when designed properly
  • the real design pressure often shows up in handle limits, metadata behavior, and login bursts, not just raw storage size

Microsoft now frames the recommendations like this for FSLogix workloads:

  • Under 2,000 concurrent users: HDD pay-as-you-go or provisioned v2 shares can be acceptable for lighter workloads
  • 2,000 to 5,000 users: move toward SSD shares, often with metadata caching
  • 5,000 to 10,000 users: distribute the workload across multiple SSD shares
  • More than 10,000 users: use multiple SSD shares and the newer metadata and handle-limit options where appropriate

That is a much better way to think about the problem than “pick a size and hope the IOPS scale with it.”

Keep the storage close to the session hosts

One of the most useful updates in Microsoft’s guidance is the emphasis on placement.

For Azure Virtual Desktop, Azure Files should generally be:

  • in the same Azure region as the session hosts
  • configured with the right identity and permissions model
  • tested under real sign-in and steady-state conditions

If the storage sits far away from the session hosts, latency becomes part of the user experience very quickly. A share that looks fine on paper can still feel slow in practice if placement is wrong.

Historical example: why spreadsheets were useful

The old calculator was helpful because it forced people to separate two different workload shapes:

  • steady-state user activity during a normal session
  • burstable sign-in and sign-out demand

That distinction is still useful.

Historic screenshot of the original calculator example.

Historic Azure Files sizing example from the original article.

The part I would change now is the conclusion. The spreadsheet should be treated as a directional estimator, not the final authority. Today you have better official guidance, better platform limits documentation, and better performance telemetry than we had when the original post was written.

What I would validate in a real design

If I were sizing Azure Files for a new AVD deployment today, I would validate these inputs first:

  1. Peak concurrent users per host pool.
  2. User persona mix: light, medium, or heavy.
  3. Whether profiles are single-container FSLogix or split with Office data handled separately.
  4. Expected login burst behavior at the start of the day.
  5. The selected Azure Files tier and whether SSD is justified.
  6. Whether the design needs Azure NetApp Files instead.

After that, I would test the environment under controlled load and monitor the outcome, rather than assuming the first number in a spreadsheet is the right answer.

When Azure NetApp Files becomes more attractive

Azure Files is a strong default, but the more demanding the workload becomes, the more sensible it is to compare it against Azure NetApp Files.

That comparison becomes especially relevant when:

  • login storms are heavy and frequent
  • latency sensitivity is high
  • the deployment is large enough that multiple shares are already required
  • you need stronger headroom for profile performance

The right answer is not always “leave Azure Files.” It is “stop assuming one share and one estimate are enough.”

My recommendation now

The old calculator represented the right instinct: treat profile storage as an architectural dependency, not an afterthought.

The remastered version of that advice is:

  • size for concurrency
  • validate login and steady-state behavior separately
  • choose the correct share tier
  • keep storage close to the hosts
  • scale out across more shares before you hit limits

If you still have your own spreadsheet or calculator, that is fine. Use it as a planning aid. Just do not let it replace real platform guidance or performance validation.

References