Tools for Capacity Planning
Microsoft Developer Network
Summary: Discusses the general principles of capacity planning analysis and provides an overview of the tools available for testing different components of enterprise systems, including Microsoft Windows Server System™. (8 printed pages)
When you are building an application, of any size, you will need to determine the "system requirements" for that application. In the case of an application that runs only on a single machine, like a mortgage calculator or a music player, these requirements generally consist of the OS, CPU, RAM and Hard Drive space required for the application to run. In a distributed application, especially one designed to service large numbers of people, determining the system requirements is a more complicated task. For such a system you will still have the basic requirements, describing the type of machine that can be used, but the true requirements depend on the number of users and the amount of work each user is doing. Determining the software and hardware configuration required to handle a certain user load is known as capacity planning. This article discusses the general principles of this type of analysis, focusing on the large variety of tools that are available to assist you in testing the different components of an enterprise system.
Before you can start planning the hardware for a system, you need to determine a realistic set of requirements. These requirements should detail the expected number of users (at peak and on average), the usage profile for the system, desired response time for certain activities, and other factors such as the maximum CPU usage you wish to see on your servers. The exact list of requirements will vary depending on the type of system you are creating, but you can get an idea of what is needed by looking at the appropriate capacity planning tool(s) in the following section. For example, the Dell capacity planning tool for Microsoft® Exchange 2000 needs information such as the number of users, the usage level of those users, expected growth in usage annually, and the desired storage limits for your users. If you need to plan a Microsoft Exchange 2000 system, that list of information would be a good starting point.
Once you have your general requirements determined, you can use the sizing tools described in the next section to estimate the hardware required. These tools will give you a starting point: a set of hardware that should handle or come close to handling your requirements. Once you have this starting point, you need to validate the capacity of this configuration, and for that you will need to use load simulators such as Microsoft Application Center Test (ACT) and LoadSim (for Exchange), which are also provided in the following section. Depending on the results of this validation step, you can increase the hardware configuration or perform tuning of your system to achieve the desired performance and capacity.
Note Many of the tools discussed here are also designed, or would be useful, for performance testing of the same systems.
Although the MSDN focus is usually on custom-developed applications, capacity planning is required for a variety of systems, including the Microsoft .NET Server products. It is also worth noting that even if the system being tested is a custom application, it likely relies on a variety of other systems, such as Microsoft Active Directory® for authentication and the network itself, which you may wish to test individually. In any case, the following list is only a partial accounting of the many testing tools available, but it is intended to be a "live" document and will be updated with new tools from time to time.
Testing the performance and capacity of Web applications is a very common activity, so it is not surprising that there are a lot of tools available to automate this process. The key task in testing a Web site is to simulate usage, increasing the load while monitoring the response time and other details of the Web site's performance. Microsoft provides two main tools for performance Web testing: the Web Application Stress tool (WAS) and Microsoft Application Center Test (ACT). In some ways, ACT is the successor to WAS, as it has the same functionality with many new features and greatly improved support for automation. It is still worth noting that WAS is a very capable testing tool and is completely free, unlike ACT, which ships as part of Microsoft Visual Studio® .NET.
You can explore a variety of resources, including Help documentation and white papers, as well as download a copy of the Web Application Stress Toolkit. In addition to the materials on the WAS Web site, there are many articles on MSDN that detail the use of WAS as part of performance testing a Web application (just search on "WAS" to find them). One article on the Microsoft Technet site, Performance Testing with the Web Application Stress Tool (part of the Duwamish sample application), is quite useful as an introduction to the use of this tool. As I mentioned, ACT is available with Visual Studio .NET (in the Enterprise Architect and Enterprise Developer editions only); documentation is available on MSDN about the features and use of this tool.
There are several tools available to help you determine how many domain controllers and global catalog servers you will require to handle Active Directory for a network. While the first of these tools, AD Sizer, is designed to provide a starting point for your hardware requirements, Microsoft provides another tool, DSTool2, to help you validate your configuration by load testing and performance monitoring.
Windows 2000 Active Directory Sizer Tool (ADSizer)
This tool is designed to give you an estimate of the hardware required based on the number of users and other objects that will be stored in your Active Directory. In addition to supplying your estimated number of users and other data, you can also specify the configuration of server you prefer, including the number of processors and the type of CPU. The sizing tool takes your server preferences into account, along with a maximum desired CPU utilization and all the other data you provide about your network, and produces a sample Active Directory hardware design.
The tool and accompanying documentation are available from Microsoft.com.
Dell Active Directory Sizer for PowerEdge Servers
Dell provides a customized version of this tool, which performs the same functions as the one from the Microsoft Web site, but also maps recommended servers to specific Dell products. See the Dell Web site.
Compaq Active Answer Resources
Compaq provides a sizing tool for a variety of applications, including Microsoft Windows® 2000 and Active Directory, as well as a white paper on the traffic analysis and calculations required to size an Active Directory deployment. See the Compaq Web Site.
Note Registration (free) is required for the Compaq Active Answers Web site in order to access some of its configuration and sizing content.
Directory Services Tool (DSTool2)
A variety of resources for planning and deploying Active Directory are included on the CD with the MS Press book, Building Enterprise Active Directory Services, including a tool called DSTool2.exe. This GUI-based tool allows you to create sample objects (users, printers, groups, etc.) in Active Directory and gives you some sample data to test against before you have any real users on your system. This tool is only available with this book—an excellent resource for anyone deploying Active Directory—so we recommend obtaining it even without the tool.
Once you have a starting configuration of hardware deployed, Microsoft SQL Server™ performance and capacity testing is usually accomplished through the load testing of the actual application(s) that will be using the SQL Server (such as an e-commerce Web site). Several hardware vendors provide tools that will help produce an estimate of the hardware requirements for SQL Server itself, so that you can get to that starting configuration.
Dell PowerMatch Server Sizing Software
Dell provides capacity planning calculators for both SQL Server 2000 and SQL Server 7.0, along with a variety of other servers, on its Web site.
Compaq Active Answer Resources
Compaq provides sizing calculators for SQL Server 7.0 and SQL Server 2000, as part of its Active Answers Web site.
Once you have a base hardware configuration, you will want to perform tests to validate the capacity of that equipment and also to assist you with performance tuning. There are many tools that ship with the SQL Server Resource Kit that can help you with testing your database. One of those tools, Database Hammer, is a load simulator and allows you to test your SQL Server with various loads. The Resource Kit also includes a tool for loading sample data into your system for the purpose of testing, called the Database Generator, or DBGen. To obtain either of these tools, or for more information, see the SQL Server 2000 Resource Kit. Microsoft has also released a book that is focused on the performance and capacity planning aspects of SQL Server, titled Microsoft SQL Server 2000 Performance Tuning Technical Reference. Chapter 9, "Sizing the Database and Application Servers," and Chapter 10, "Methods for Sizing a System," should be particularly helpful.
Microsoft Exchange performance is dependent on a wide variety of factors, making server sizing for this product into a complicated business. For that reason, using available tools from Microsoft and others is essential to producing a good estimate of your hardware requirements.
Microsoft Exchange 2000 Resource Kit
The Exchange 2000 Resource Kit provides two sizing tools:
Exchange Load Simulator (LoadSim). LoadSim is an excellent tool for simulating large numbers of MAPI clients running against Exchange Server configurations. This tool allows a simulated messaging load to be placed on a server running Exchange 2000. A more recent version of the Load Simulator is available on the Microsoft Exchange Server Web site; use it instead of the one included in the Resource Kit.
Stress and Performance Tool (ESP). ESP is a very flexible and scalable load-simulating tool that can use multiple clients to stress Exchange through a variety of Internet protocols. Protocols supported include POP3, SMTP, IMAP4, HTTP, HTTP-DAV, NNTP, LDAP and OLE DB. A more recent version of ESP is available on the Microsoft Exchange Server Web site; use it instead of the one supplied in the Resource Kit.
Also included in the Resource Kit is an entire chapter on server sizing.
Compaq Active Answers Resources
In addition to other Microsoft servers, Compaq provides tools and documentation on sizing and configuration of Microsoft Exchange on its Web site. These tools include considerations and recommendations for deploying Exchange in a hosted environment as well as internal to an organization. A separate tool is provided to do detailed sizing of the storage requirements for your Exchange deployment.
Additional Sizing Information
The following articles are based on Exchange 5.5, but they contain excellent advice on how to measure Exchange capacity and performance:
- Planning Exchange Architecture in a Bandwidth-Sensitive Environment
- MS Exchange Server 5.5: Calculating Users per Server
As a Web application, Commerce Server can be sized and tested using tools like WAS or ACT, just like custom-designed Web applications, but there are several tools and resources that are specifically targeted at sizing a Commerce Server deployment.
Guide to Commerce Server Performance Tools
The Commerce Server Performance Tools article provides an overview of a large amount of reference material available on the MSDN Web site, orientated towards performance testing and planning for Microsoft Commerce Server 2000. Use this guide as a starting point to exploring what Microsoft has to offer to assist you in your Commerce Server planning.
Compaq Active Answers Online Commerce Calculator
For Commerce Server 2000, and a variety of other e-commerce applications, Compaq has provided an online calculator. Perhaps because of the number of applications it attempts to address, this sizing tool gives you very few options to describe your particular requirements, and therefore does not produce a very specific sizing estimate or configuration.
Microsoft BizTalk™ involves a variety of different services—including Web servers, databases, message queues, and more—making sizing and capacity planning quite complex.
Chapter 7 of the Reference Architecture Guide
The Reference Architecture Guide provides guidance for creating a complete Internet Data Center, including material on BizTalk Server 2000. Chapter 7, "BizTalk Server Design", does not provide explicit assistance for sizing BizTalk, but it does give some useful information and suggests a starting configuration for different purposes.
Evaluating the Performance of a Configuration
Once you have a starting configuration, this article provides guidelines on the various system performance counters you should be using to assess the performance of a BizTalk Server system.
Microsoft has provided two sources of information on sizing Content Management Server. The first provides details of performance testing on customer deployments, and the second describes general guidelines for sizing and tuning this product.
Content Management Server 2001 Scalabilty and Performance
This paper describes the results of performance and scalability tests on two Web sites built with Microsoft Content Management Server 2001. Both sites tested were actual corporate Web sites.
Performance Optimization and Capacity Planning
This article covers two separate, but related topics: how to obtain optimal performance out of a server running Content Management Server and how to plan and size servers to meet specific capacity goals.