Host Pool
A logical group of session host VMs in Azure Virtual Desktop that together provide user sessions. The core abstraction in AVD — and the place where architectural decisions get made.
What is a host pool?
A host pool is a logical grouping of session host VMs in Azure Virtual Desktop that share common properties: the same image, the same applications, the same audience and the same scaling behaviour.
In the AVD architecture the host pool is the central level of abstraction — provisioning, scaling, updating and user assignment are all configured at host pool level.
Eine typische Organisation: An office worker pool (pooled, inexpensive), a developer pool (personal, powerful), a CAD pool (personal plus GPU), a contact centre pool (pooled, active around the clock). Each pool has its own rules.
Personal vs. Pooled
Personal Host Pool (1:1)
- AssignmentFixed — 1 user = 1 VM
- PersistenceFull — data stays on the VM
- CostHigher (around the clock or autoscaling)
- SetupSimpler, less scaling logic
- UseDevelopment, CAD, power users
Pooled Host Pool (n:1)
- AssignmentDynamic — the broker picks a free VM
- PersistenzVia FSLogix-Profile
- CostConsiderably cheaper (multi-session)
- SetupMore complex — profiles, scaling, load balancing
- UseOffice, task workers, education
How a host pool is structured
| Component | Role | Count |
|---|---|---|
| Session Hosts | The actual VMs | 1-500 |
| App Group | Bundles applications or desktops and assigns users | 1-n per pool |
| Workspace | Offers application groups to users | One or more |
| Scaling Plan | Time-based scaling rules | Optional |
| Log Analytics Workspace | Monitoring-Backend | 1 (idR geteilt) |
Load balancing methods
With pooled host pools the broker decides which VM receives a new user:
- Breadth-First — spreads users evenly across all VMs. The user experience stays consistent, but every VM stays running (higher cost)
- Depth-First — fills one VM to its limit, then the next. Better cost optimisation (unused VMs can scale to zero), but the first VM carries a heavy load
Host pool sizing: how many users per VM?
The central architectural question with pooled host pools. Typical guide figures for multi-session VMs:
| Workload | VM size | User/VM | Example |
|---|---|---|---|
| Light Task-Worker | D4s_v5 (4 vCPU, 16 GB) | 6-8 | Kioske, Contact-Center, POS |
| Medium Office | D8s_v5 (8 vCPU, 32 GB) | 8-12 | Office 365, Outlook, Browser |
| Knowledge Worker | D16s_v5 (16 vCPU, 64 GB) | 10-14 | SAP GUI, ERP, mehrere Apps parallel |
| Heavy Power | Personal Desktop | 1 | Dev, CAD, Video-Editing |
Measuring density
Real user density depends heavily on the actual usage profile. Tools such as Login Enterprise (Hydra) or Nerdio measure genuine VM utilisation and give recommendations. Blanket figures are only starting points.
Host pool best practices
- One host pool per workload type — do not throw every user into one large pool
- Several application groups per pool — one for the full desktop, one for RemoteApp publishing, for example
- Always enable autoscaling — Nerdio or Azure scaling plans, saving 40 to 70% of compute cost
- Standby capacity — one or two VMs always pre-started so users do not wait in the morning
- Quarterly review of density — usage patterns change, so adjust the sizing
- Separate pools per Azure region — for global setups with local user traffic
Host-Pool-Patterns in DaaS Maps
DaaS Maps shows host pool patterns for different workload types with real sizing examples. For a conversation about AVD architecture and host pool design, you will find me on LinkedIn.