Skip to content
ServerCalc ServerCalc
Virtualization

Terminal Server Calculator

How many users fit on one session host, and how many session hosts you need for your user count.

Inputs

Users & workload

Everyone with an account, signed in or not.

80%

Share of them signed in at the busiest moment.

Microsoft's published figure for this workload class.

GB
GB
kbps
Session host spec
GB

Memory the guest OS keeps for itself before any user.

Planning assumptions

Capacity gained per doubling of vCPUs. Never quite 2.

15%

Capacity lost to the hypervisor. Set 0 for bare metal.

20%

Held back for logon storms and spikes.

Physical infrastructure & cost

What the session hosts run on. Drives power and cost.

vCPUs per physical thread. 1:1 is safest for RDS.

$/kWh

Your blended rate per kWh, taxes included.

Facility overhead multiplier. 1.0 counts IT load only.

  • Memory is the limit: 46 users fit in RAM but the CPUs could serve 48. Raising this host to 101 GB would unlock the CPU capacity you already paid for.
Results update live as you type.

Results

Session hosts needed
7
6 to carry the load, plus 1 spare.
Users per session host
36
46 raw, less 20% headroom. Limited by memory.
Concurrent users at peak
200
80% of 250 named users.
Ceiling from CPU
48.0
Ceiling from memory
46.0
Farm capacity
252
216 sessions still served with one host down.
Total vCPU
112 vCPU
Total RAM
672 GB
Physical cores needed
56
Physical servers
1
64 physical cores each, at 1:1 vCPU commit.
OS storage
896 GB
Profile storage
7.32 TB
Per named user, not per session.
Total storage
8.20 TB
Peak bandwidth
80 Mbps
400 kbps per session at peak concurrency.
Farm power draw
691 W
Physical servers at 70% utilization.
Annual energy
6,051 kWh
Energy cost per year
$1,362
Energy cost per user per year
$5.45

What limits density

A session host carries whichever is smaller: the users its CPU can keep responsive, or the users its memory can hold. Most real builds run out of memory first, and quoting only the CPU figure can overstate capacity threefold.

Users per host vs vCPU count

Doubling the cores does not double the users. Synchronization overhead grows with core count, so Microsoft measures a scaling factor of 1.5 to 1.9 per doubling and recommends keeping a session host between 4 and 24 vCPUs. Two 8-vCPU hosts beat one 16-vCPU host, and they fail smaller.

Recommended 4 to 24 vCPU013253850246812162024324864Your host: 36 usersvCPU per session host
CPUmemory — Flat where memory, not CPU, is the limit.

About this calculator

There is no single answer to 'how many users fit on a terminal server', which is exactly why people search for a calculator. Density depends on what the users actually do, how much memory each session holds, how many cores the host has, and whether the box is virtualized. Change any one of those and the answer moves by a factor of three.

This calculator works it out from Microsoft's published session host sizing guidance for Remote Desktop Services and Azure Virtual Desktop, which gives a maximum users-per-vCPU for four workload classes rather than a single number. Enter your user count, pick the workload, describe the host, and you get users per host, session hosts required, total vCPU and RAM, profile storage, peak bandwidth, and what the farm costs to run.

Two things separate this from the wattage-adder style of terminal server calculator.

It reports the binding constraint. A session host carries whichever is smaller: the users its CPUs can keep responsive, or the users its memory can hold. On most real builds memory runs out first, often long before CPU does. A calculator that only multiplies cores by users-per-core will happily tell you a 16 vCPU / 32 GB host carries 64 medium users. It carries 14. The chart below shows both ceilings side by side and marks which one binds.

It models sublinear core scaling. Doubling the cores does not double the users. Microsoft measures a scaling factor of roughly 1.5 to 1.9 per doubling because synchronization overhead grows with core count, which is why their guidance caps a session host at 16 to 24 vCPUs and recommends more, smaller hosts instead of fewer, larger ones.

The formula

Users per host = min(CPU ceiling, memory ceiling) × (1 − headroom)

The two ceilings:

CPU ceiling = users_per_vCPU × 8 × (vCPU_effective ÷ 8) ^ log2(scaling_factor)
memory ceiling = (host_RAM − OS_reserve) ÷ RAM_per_user
vCPU_effective = vCPU × (1 − virtualization_overhead)

The exponent is what makes core scaling sublinear. At the 8-vCPU reference point the CPU ceiling equals the simple users-per-vCPU multiplication. Above it the curve bends away: at a 1.7 scaling factor a 16-vCPU host delivers about 15% fewer users than linear arithmetic suggests, a 32-vCPU host about 28% fewer, and a 64-vCPU host about 39% fewer. That is the mathematical form of Microsoft's advice to keep session hosts small.

Everything else follows:

concurrent users = named users × peak concurrency
hosts needed = ceil(concurrent users ÷ users per host)
hosts deployed = hosts needed + redundancy spares
physical cores = (hosts × vCPU ÷ oversubscription) ÷ threads_per_core
profile storage = named users × profile size
peak bandwidth = concurrent users × per-session bandwidth

Note that profile containers are sized against named users, not concurrent sessions. Someone who is signed out still has an FSLogix container on disk. Everything else scales with concurrency.

Workload classes

The users-per-vCPU figures are Microsoft's, from their multi-session sizing table:

  • Light, 6 users per vCPU. Data entry, line-of-business apps, command-line work.
  • Medium, 4 users per vCPU. Office apps, static web, consultants and researchers.
  • Heavy, 2 users per vCPU. Outlook, Teams, dynamic web, software development.
  • Power, 1 user per vCPU. CAD, CAM, photo and video editing, machine learning.

Memory, profile and bandwidth per user are the conventional planning values that sit alongside those figures, since Microsoft publishes a minimum VM size rather than a per-user memory number. All of them are editable.

Headroom and redundancy

Two different safety margins, and both matter. Headroom holds back capacity within each host for logon storms; signing in is CPU-expensive, and a farm that comfortably serves 200 steady sessions can fall over when 200 people arrive at 09:00. Redundancy adds whole spare hosts so a failure does not overload the survivors. N+1 is the usual minimum; the calculator reports what capacity remains with one host down.

Common use cases

  • Sizing an RDS or terminal server farm before buying hardware or cloud instances
  • Answering how many users a given session host will actually carry
  • Finding out whether your hosts are CPU-bound or memory-bound, and which upgrade helps
  • Deciding between a few large session hosts and more small ones
  • Budgeting FSLogix or UPD profile storage for a user population
  • Estimating peak WAN bandwidth for a remote workforce
  • Comparing RDS multi-session against single-session VDI on hosts and cost
  • Putting an annual electricity figure against a session host farm

Frequently Asked Questions

How many users can one terminal server handle?
It depends on workload and host size, and the honest range is wide. Using Microsoft's figures, a 16 vCPU host carries roughly 57 light users, 36 medium, 18 heavy or 9 power users once you allow 20% headroom, assuming memory is not the limit. Memory usually is the limit: the same host with only 32 GB carries about 11 medium users rather than 36, because 2 GB per user runs out long before the CPUs do. Enter your actual host spec above and the calculator reports both ceilings and tells you which one binds.
How much RAM does a terminal server need per user?
Between 1 and 8 GB per signed-in user depending on workload, plus a reserve for the OS itself. Light data-entry sessions run around 1 GB, typical office users 2 GB, heavy users running Outlook, Teams and a development environment 4 GB, and power users with CAD or video editing 8 GB or more. Add 4 GB or so for Windows Server and its agents before any user signs in. The quick formula is total RAM = (concurrent users per host × RAM per user) + OS reserve, and it is worth sizing generously because memory is the constraint that binds first on most builds.
How many users per CPU core for RDS?
Microsoft's multi-session guidance is per vCPU, not per physical core: 6 users per vCPU for light workloads, 4 for medium, 2 for heavy and 1 for power users. Since hyper-threading and SMT present two vCPUs per physical core, a 16-core physical CPU offers 32 vCPUs. Do not simply multiply: capacity scales sublinearly with core count, so a 32-vCPU host does not carry twice what a 16-vCPU one does. Microsoft measures a factor of 1.5 to 1.9 per doubling, which this calculator applies.
Why does Microsoft recommend keeping session hosts under 24 vCPUs?
Because synchronization overhead grows with core count and eats the extra capacity. Microsoft's guidance is that VMs should have more than two cores (Windows UI rendering needs parallel threads, and four is the practical minimum for a stable multi-session host), and no more than 32, with returns tailing off badly from about 16 upward. Two 16-core VMs give a better user experience than one 32-core VM. Smaller hosts also fail smaller, patch more easily, and can be shut down when empty. The chart above shades the recommended 4 to 24 vCPU band.
How many concurrent users should I plan for?
Size on concurrent sessions at peak, never on your licence count. In most organisations peak concurrency runs 60 to 85% of named users, depending on shift patterns, time zones and how many people work part-time. A single-site office with everyone in at 09:00 is near the top of that range; a follow-the-sun operation is much lower. Then add headroom on top for the logon storm, because signing in is far more CPU-intensive than steady-state use, and a farm sized for 200 steady sessions can still fall over when 200 people arrive at once.
Is my terminal server CPU-bound or memory-bound?
Run the numbers and see; this calculator reports both ceilings. As a rule, hosts with plenty of cores relative to memory are memory-bound, which is the common case, and adding RAM immediately buys users. Hosts with generous memory and few cores are CPU-bound, and adding more RAM does nothing. On a live farm, check the Processor Queue Length and Available Memory counters, and the User Input Delay per Session counter, which is the metric that actually correlates with users complaining. Microsoft targets under 200 ms end-to-end response.
Should I use fewer large servers or more small ones?
More small ones, in almost every case. Sublinear scaling means the total user capacity of two 16-vCPU hosts exceeds that of one 32-vCPU host. Smaller hosts also mean a failure takes fewer users with it, patching can be rolled through the farm without a full outage, and empty hosts can be shut down out of hours to save power. The counterargument is licensing and management overhead per host, which is why the practical answer usually lands in Microsoft's 8 to 24 vCPU band rather than at either extreme.
What is the difference between terminal server, RDS and VDI?
Terminal Server is the old name; Microsoft renamed it Remote Desktop Services in Windows Server 2008 R2, and plenty of people still say terminal server. Both mean multi-session: many users share one Windows Server instance, each with their own session. VDI (Virtual Desktop Infrastructure) is single-session, giving each user their own dedicated desktop VM. Multi-session is far denser and cheaper per user; VDI gives better isolation and lets users install software or run applications that misbehave when shared. This calculator does both, via the Session mode selector.
How much bandwidth does each RDP session need?
Roughly 150 to 400 kbps for typical office work, rising to 1 to 2 Mbps for users watching video or working with dynamic content, and several Mbps for CAD, 3D or multi-monitor 4K. The defaults here are 200 kbps light, 400 kbps medium, 1.2 Mbps heavy and 4 Mbps power. Latency matters more than raw bandwidth for how a session feels: aim for under 50 ms round trip, and remember that packet loss and jitter degrade the experience faster than a slightly narrow pipe.
Does virtualization reduce terminal server capacity?
Yes, by about 15 to 20% based on Microsoft's internal testing, and hypervisor latency also pushes user response times 10 to 20% higher than bare metal. That is the default in this calculator, and you can set it to zero if you are running session hosts directly on physical hardware. Most people accept the loss because virtualization buys live migration, snapshots, density and rapid rebuild, but if you are sizing tightly it is a real 15% you should not forget to count.
How much profile storage do I need?
Budget per named user, not per concurrent session, because a signed-out user still has a container on disk. Microsoft suggests a 30 GB minimum per profile container for FSLogix, which is the default here, though real consumption is usually well below that since containers are dynamically expanding. Size the file share on the sum of allocated containers if you cannot thin-provision, and remember Office cached mode and OneDrive can push individual profiles far above the average. Profile storage also wants low latency: it sits in the logon path, so slow profile storage shows up directly as slow logons.

Spot an error? Have feedback?

Tell us what is wrong with the math, what is missing, or which server model you would like added. We read everything.