Capacity planning for Windows Terminal Services

Capacity planning for the latest version of Terminal Services can be confusing, but the trick is to plan based on how TS will be used.

Capacity planning for Windows Server 2008 Terminal Services can be tricky.

In previous versions of Terminal Services, Microsoft provided guidelines for how much memory to install in the server based on the number of anticipated sessions. But such recommendations don't exist for the Windows Server 2008 version.

This is understandable. The load placed on a terminal server varies depending on how the server is used, and as a result, blanket per-user recommendations may be inadequate. Therefore, capacity planning should be based on how Terminal Services (TS) will be used.

General recommendations
There are two general guidelines that can be applied for capacity planning in almost all TS environments:

  1. Always run a 64-bit Windows Server operating system on terminal servers (unless doing so causes application-compatibility problems). Running a 64-bit operating system improves the server's overall efficiency, often allowing it to host more sessions than a comparable 32-bit server./p>

  2. Use a server with as many CPU cores as your organization can afford. As a general rule, the more CPU cores and the more memory the terminal server is equipped with, the better it will perform.

Capacity planning
You must determine what server resources are needed in an environment to avoid purchasing inadequate servers or wasting money on excessive hardware.

The first step is to find out the number of users in the organization and the applications that they run.

Not all users are going to put the same load on a terminal server; users can be classified as generating heavy, medium or light workloads. For example, a manager who spends most of the day in meetings might stay logged in all the time but generates a minimal load on a terminal server. On the other hand, the power user who has 15 different windows open (and uses them all) places a heavy load on the server.

Once you understand the applications that users access and how heavily those applications are used, a sample terminal server should be set up and used to run either a small-scale pilot deployment or a usage simulation.

For this part of the capacity planning process, there is no need to invest in server hardware; a high-end PC can be used as the terminal server. This will provide a good understanding of the resources consumed by each session, and the information can be extrapolated to gain a clearer picture of the resources required for a full-scale deployment.

The Windows Server 2003 Deployment Kit Companion CD contains RoboServer (Robosrv.exe), a tool designed to simulate a workload based on how the server is anticipated to be used by users. This utility and its companion component, RoboClient, use client computers to generate server workloads. A modest estimate is that a single desktop workstation can usually generate a workload equal to at least 20 users. Desktops with more powerful hardware can simulate even more users, but Microsoft recommends keeping the average CPU utilization of the client computer below 20% to avoid skewing the test results.

Since RoboServer was originally developed for Microsoft Exchange, the scripts included with it are Exchange-specific. However, you can adapt the scripts for use with Terminal Services.

Other considerations
In the past, capacity planning efforts primarily focused on the terminal servers in a server farm. But in the case of Windows Server 2008, additional role services (such as TS Gateway, TS Session Broker and TS Licensing) can also facilitate the user's ability to establish a Terminal Services session. Therefore, consider the impact of your anticipated workload on any of these role services, especially if any of the services are running on a dedicated server.

Typically, each session only places a very light load on TS Session Broker, Redirector and TS Web Access server, because each of these role services or functions is used only once per session. Likewise, a session only connects to the TS Licensing Server if the user or computer has not previously acquired a license.

The role service that can become a bottleneck is TS Gateway, so ensure that TS Gateway has adequate hardware and sufficient bandwidth to handle the expected workload. If you perform capacity planning simulations, then set up the tests so that an appropriate number of simulated users access the session through the TS Gateway server.

You should set up a lab server and run the set of applications that users will use. This will detect potential compatibility problems between the applications and Terminal Services. It will also provide a more accurate estimate of the resources that the applications will consume than if the applications were run on a standalone PC because it will allow per-session overhead to be measured that would not be present on a standalone PC.

Brien M. Posey, MCSE, is a Microsoft Most Valuable Professional for his work with Exchange Server and has previously received Microsoft's MVP award for Windows Server and Internet Information Server (IIS). He has served as CIO for a nationwide chain of hospitals and was once responsible for the Department of Information Management at Fort Knox. As a freelance technical writer, Posey has written for Microsoft, TechTarget, CNET, ZDNet, MSD2D, Relevant Technologies and other technology companies. You can visit his personal website at www.brienposey.com.

Dig Deeper on Terminal Services and Remote Desktop Services