Host pools and load balancing
A host pool is the collection of session hosts that users connect to. Most design questions on the exam come down to choosing the right type, the right load balancing, and the right supporting settings.
Pooled or personal
| Pooled | Personal | |
|---|---|---|
| Session hosts | Shared by many users | One user per VM |
| OS | Usually Windows 11 Enterprise multi-session | Windows 11 Enterprise (single session) |
| Profile | Needs FSLogix profile containers | Local profile is fine |
| Assignment | Load balancing | Automatic or direct |
| Typical use | Task workers, cost saving | Developers, admin tools, heavy apps |
In a personal pool, automatic assignment gives the user a free host on first sign-in. Direct assignment means an admin assigns each user to a named host.
Load balancing for pooled pools
- Breadth-first: a new session goes to the host with the fewest sessions. This spreads load evenly and gives the best user experience.
- Depth-first: a new session goes to the host with the most sessions that is still under the Max session limit. This fills hosts one by one so unused hosts can be stopped.
Max session limit is the cap per host. It matters most for depth-first, where hosts fill to the limit before the next host is used. In both modes a full host receives no new sessions.
Start VM on connect
This setting lets you keep session hosts deallocated and start one when a user connects. It works for pooled and personal pools. Requirements:
- The Desktop Virtualization Power On Contributor role must be assigned to the Azure Virtual Desktop service principal.
- Set the option on the host pool (Start VM on connect = Enabled).
It saves money without a schedule. Scaling plans handle scheduled start and stop (see the scaling lesson).
Registration key
Session hosts join a pool with the registration key (token) and the Azure Virtual Desktop agent. You choose an expiry from one hour up to 27 days. When it expires, generate a new key before adding hosts. Existing hosts keep working.
Validation environment
Mark a host pool as a validation environment to receive service updates first. Use it for testing, not production.
Exam traps
- Load balancing algorithms are for pooled pools only. Personal pools do not have breadth or depth.
- Depth-first saves cost, breadth-first gives performance. People swap them.
- Start VM on connect needs a role assignment for the service, not just the checkbox.
- An expired registration key does not remove existing session hosts; it only blocks new ones.
- Multi-session Windows needs FSLogix; personal desktops usually do not.
Practice questions
Choose an answer, then review the explanation to check your understanding.
1. Users should each keep the same dedicated VM for every sign-in. Which host pool type and assignment do you choose?
Show answer
Answer: B.A personal host pool gives each user their own session host. Automatic assignment picks one on first sign-in and then keeps it.
2. To save cost, you want users packed onto as few session hosts as possible so idle hosts can be deallocated. Which setting fits?
Show answer
Answer: B.Depth-first sends new sessions to the busiest host until it reaches the Max session limit, leaving other hosts empty.
3. Start VM on connect is enabled, but deallocated session hosts never start. What is the most likely missing piece?
Show answer
Answer: B.The service needs the Desktop Virtualization Power On Contributor role on the subscription (or resource group) to power on VMs.
4. A host pool is personal. Where do you set the load balancing algorithm?
Show answer
Answer: C.Breadth-first and depth-first apply to pooled host pools only. Personal pools use automatic or direct assignment.