Terminal Server Capacity Planning

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

Terminal Server Capacity Planning

Size your terminal servers with sufficient CPU, memory, and disk resources to handle the client demand. For adequate performance, a terminal server requires a minimum of 128 megabytes (MB) RAM, plus additional RAM for each user running applications on the server, depending on the type of user. For more information about server capacity requirements for Terminal Server, see the Terminal Services link on the Web Resources page at https://www.microsoft.com/windows/reskits/webresources.


  • Guidelines outlined on this Web site are for specific server configurations, and provide a baseline for estimating server capacity. Terminal Server capacity can vary depending on factors such as type of user, server and network configuration, and the applications you are hosting. Test your design thoroughly and monitor the server load after deployment to be sure your servers have adequate capacity to provide users with an acceptable experience.

A multiprocessor configuration can maximize CPU availability. In general, processor and memory requirements scale linearly. You can support nearly double the number of users on a multiprocessor-capable Pentium system by doubling the number of processors and doubling the amount of memory. For this reason, purchasing a system that supports multiple processors, even if you initially purchase only one processor, allows you to add capacity easily as your requirements grow.

Estimating User Demand

The amount of RAM and CPU that Terminal Server users consume depends on the application features that they use, how often they use the application, and how much work they accomplish in any unit of time. If you understand the work patterns of your users, you can use the Terminal Server capacity planning tools on the Windows Server 2003 Deployment Kit companion CD — Roboserver (Robosrv.exe) and Roboclient (Robocli.exe) — to more accurately emulate the activity level of your users. For more information about Roboserver and Roboclient, click Tools in Help and Support Center, and then click Windows Resource Kit Tools Help. How to use the capacity planning tools to emulate the activity of your users is discussed later in this section.

Application Considerations

When determining server sizing, examine the types of applications your server runs. Check system requirements for each application carefully and consider that RAM and CPU requirements increase according to the number of sessions expected to run simultaneously. Also, a terminal server shares executable resources among individual users, just as Windows shares executable resources among individual programs. As a result, the memory requirements for additional users running the same program are typically less than the requirements for the first user who loads the application. Although you cannot make precise estimates based on these factors, they give you a basis for projecting program performance.

Testing Server Capacity

Test the servers on which you plan to host applications in order to ensure adequate server capacity. Using a server that you estimate to be of the correct capacity, construct a test environment with the appropriate number of sessions running the application for a specified period of time and at a level of activity that simulates actual use. Because adequate performance can be subjective, you need to also perform real-user testing. Ask users to identify perceived performance issues, and make sure that you establish baseline task completion times based on user feedback, and use a stopwatch to accurately measure the effect of server capacity on performance throughout testing. A good indicator of unacceptable performance is when the time to complete the tasks in the simulation takes 10 percent longer than the baseline.

Using the Capacity Planning Tools

To test the capacity of your terminal server to handle the estimated user demand, the Windows Server 2003 Deployment Kit provides Terminal Server capacity planning tools — Roboserver (Robosrv.exe) and Roboclient (Robocli.exe) — which include application scripting support. You can use these tools, which are available on the Windows Server 2003 Deployment Kit companion CD, to easily place and manage simulated loads on a server. This information can help you determine whether your environment can handle the load that users place on it. Used together, these tools make capacity planning easier and more automated. For more information about Roboserver and Roboclient, click Tools in Help and Support Center, and then click Windows Resource Kit Tools Help.

To use these tools, you will need to equip your test lab with the following hardware and software:

  • A domain controller

  • A server running Terminal Server

  • Any additional servers needed to emulate the intended use of Terminal Server in the production environment, such as:

    • A server running Microsoft® SQL Server™ (if you are going to host an application with a SQL Server back end)

    • A server running Microsoft® Exchange (if you intend to host e-mail)

  • Client computers


  • The scripts included with the tools are designed for use with an Exchange server, and emulate typical usage patterns for knowledge workers and data entry workers. You can use these scripts as a template to create custom scripts for your needs. You should alter these scripts to emulate the users and infrastructure in your own environment.

The following sections summarize the hardware requirements for capacity planning tests.

For more information about using the capacity planning tools, click Tools in Help and Support Center for Windows Server 2003, and then click Windows Resource Kit Tools Help.


  • Using these tools can also help you identify compatibility issues with the applications you plan to host with Terminal Server.

Domain controller   Roboserver runs on the domain controller. The domain controller should run Windows Server 2003, Enterprise Edition, or Microsoft® Windows® 2000 Advanced Server and be configured as the domain controller of a private domain. It should also be configured as a DNS server with both a Forward Lookup Zone and a Reverse Lookup Zone.

Terminal server   The server that runs Terminal Server should have the same hardware and be configured the same as the server planned for the production environment.

Client computers   Roboclient runs on the client computers. You need enough client computers to represent the number of users you plan to access the terminal server. You can emulate several users by using a single client computer. It is recommended that you limit the number to five, but if resources are limited, a low-end client computer can emulate as many as 20 users. In general, limit the number of users emulated on each client computer so as to keep the CPU usage of the computer below 20 percent.


  • Emulating several users by using a single computer in the test lab alters network traffic differently than in the production environment. Network usage is higher in the production environment.

You can also use System Monitor, a Windows Server 2003 support tool, to monitor the performance on the terminal servers in your test lab. To start System Monitor, at the command line type perfmon. For more information about System Monitor, see Perfmon in Help and Support Center for Windows Server 2003.


  • Measure disk performance from a remote computer because having the perfmon log on the disk that is being measured can affect the performance results.

Microsoft Operations Manager (MOM) is also a very useful tool for performance monitoring and scalability planning. For more information, see the Microsoft Operations Manager link on the Web Resources page at https://www.microsoft.com/windows/reskits/webresources.

Real-User Capacity Testing

Because a terminal server running at or above capacity affects performance, it is important that you also test server capacity with a sampling of real users. Also, the Terminal Server capacity planning tools simulate user activity but do not reflect actual human behavior, such as breaks and peaks and lulls in activity, and adequate performance for users is subjective. You can use your pilot test to further determine whether the capacity of your terminal servers is adequate. For more information about pilot testing, see "Planning for Deployment" in Planning. Testing, and Piloting Deployment Projects of this kit.


  • It is highly recommended that you conduct a pilot test for your design before implementing it in the production environment. For Terminal Server, pilot testing is crucial for determining correct server size and satisfactory application performance levels in the production environment.

Data Storage Considerations

With Terminal Server, there are some storage access regions that you should consider distributing across several hard drives or redundant array of independent disks (RAID) array, especially for implementations serving large number of users:

  • System binaries

  • Application binaries

  • User profiles and data

  • Page files

For Terminal Server, it is best to put your page files on a dedicated hard drive. In addition, because of the multiuser nature of Terminal Server, be sure that your page file is twice the size of your RAM. For example, if your Terminal Server has 2 gigabytes (GB) of RAM, you should have a 4 GB paging file. You should also have two paging files if necessary. For information about how to change the default paging file size, see "Change the size of the virtual memory paging file" in Help and Support Center for Windows Server 2003.

For improved performance of storage devices with a backup power supply, you can use the following procedure.

To enable advanced disk performance for storage devices

  1. From the Start menu, click All Programs, click Administrative Tools, and then click Computer Management.

  2. In Computer Management, under Storage, click Disk Management.

  3. Right-click the disk for which you want to enable advanced performance and click Properties.

  4. On the Policies tab, check the Enable advanced performance checkbox.