This section provides general performance and capacity recommendations. Use these recommendations to determine the capacity and performance characteristics of the starting topology that you created in Plan for redundancy (Windows SharePoint Services) article) and to determine whether you need to scale the starting topology out or up.
You can estimate the performance of your starting-point topology by comparing your topology to the starting-point topologies that are provided in Plan for redundancy (Windows SharePoint Services). So doing can help you quickly determine if you need to scale your starting-point topology to meet your performance and capacity goals.
Capacity and performance of scaled-out topologies
To increase the capacity and performance of one of the starting-point topologies, either scale up by implementing server computers with greater capacity or scale out by adding additional servers to the topology. This section describes the general performance characteristics of several scaled-out topologies. The sample topologies represent the following common ways to scale a topology for the collaboration scenario:
To accommodate greater user load, add Web server computers.
To accommodate greater data load, add capacity to the database server role by increasing the capacity of a single (clustered or mirrored) server, by upgrading to a 64-bit server, or by adding clustered or mirrored servers.
Maintain a ratio of no greater than eight Web server computers to 1 (clustered or mirrored) database server computer.
Throughput is the number of operations that a server farm can perform per second. Ideally, the number of operations that are requested per second is lower than the number that is targeted for a given level of performance. If the number of operations that is requested exceeds the targeted number, user actions and other operations take longer to complete.
Throughput is measured in requests per second (RPS). RPS measurements can be converted to the total number of users by using a model of typical end-user behavior. Like many human behaviors, there is a broad range of "typical" behavior. The user model for Windows SharePoint Services 3.0 has the following two variables:
Concurrency - The percentage of users that are actively using the system.
Request rate — The average number of requests per hour that an active user generates. Four levels of user behavior are shown in the following table.
You can calculate a rough throughput guideline for typical load in the following way:
Number of users*percentage of users who are active/request rate
For example, for 1,000 users, the following values result:
Simultaneous users = 1,000 * 10% = 100
Estimated requests per user per hour = 36 = 1 request per user per 100 seconds
Throughput = simultaneous users/request rate = 100/100 = 1 RPS
Therefore, 1 RPS can support up to 1,000 users, each making 36 requests per hour.
The following table describes throughput targets for four levels of user load.
| User load | Request rate | Supported users |
|---|
Light | 20 requests per hour. An active user will generate a request every 180 seconds. | Each response per second of throughput supports 180 simultaneous users and 1,800 total users. |
Typical | 36 requests per hour. An active user will generate a request every 100 seconds. | Each response per second of throughput supports 100 simultaneous users and 1,000 total users. |
Heavy | 60 requests per hour. An active user will generate a request every 60 seconds. | Each response per second of throughput supports 60 simultaneous users and 600 total users. |
Extreme | 120 requests per hour. An active user will generate a request every 30 seconds. | Each response per second of throughput supports 30 simultaneous users and 300 total users. |
If your organization has an existing collaboration solution, you can view the IIS logs to determine the usage patterns and trends in your current environment. For more information about parsing IIS logs, see Analyzing Log Files (IIS 6.0) http://go.microsoft.com/fwlink/?LinkId=78825&clcid=0x409.
If your organization is planning a new collaboration solution deployment, use the information in the following section to estimate your usage patterns.
Estimate throughput targets
The estimated throughput performance of the server farms presented in the previous section is based on the following assumptions:
User response rate of <1 second for common operations
User concurrency rate of 10%
Indexing operations running within an overnight time window of 12 hours
Use the information in this section to change the value of these assumptions to accommodate your organization’s characteristics. The result might be a different throughput target for your organization.
Test results: Throughput by farm configuration
The table in this section shows test results for a variety of user operation profiles using the hardware listed in Test environments earlier in this article. The number of user connections is a fixed parameter that was used during testing.
The following table shows test results for both read-write mix and read-only user operations.
| Farm configuration | RPS | | Total number of user connections | | | | | | | |
|---|
| | | Light usage | | Typical usage | | Heavy usage | | Extreme usage | |
| Mix | Read | Mix | Read | Mix | Read | Mix | Read | Mix | Read |
1 by 1 | 50 | 100 | 90,000 | 180,000 | 50,000 | 100,000 | 30,000 | 60,000 | 15,000 | 30,000 |
2 by 1 | 99 | 185 | 178,200 | 333,000 | 99,000 | 185,000 | 59,400 | 111,000 | 29,700 | 55,500 |
3 by 1 | 115 | 265 | 207,000 | 477,000 | 115,000 | 265,000 | 69,000 | 159,000 | 34,500 | 79,500 |
4 by 1 | 120 | 275 | 216,000 | 495,000 | 120,000 | 275,000 | 72,000 | 165,000 | 36,000 | 82,500 |
5 by 1 | 136 | 280 | 244,800 | 504,000 | 136,000 | 280,000 | 81,600 | 168,000 | 40,800 | 84,000 |
6 by 1 | 130 | 280 | 234,000 | 504,000 | 130,000 | 280,000 | 78,000 | 168,000 | 39,000 | 84,000 |
7 by 1 | 134 | 290 | 241,200 | 522,000 | 134,000 | 290,000 | 80,400 | 174,000 | 40,200 | 87,000 |
8 by 1 | 130 | 280 | 234,000 | 504,000 | 130,000 | 280,000 | 78,000 | 168,000 | 39,000 | 84,000 |
The following graph shows changes in throughput for both read-write and read-only operations when the number of front-end Web servers changes. Note that this graph is not based on the test results from the above table. It is intended to illustrate the general trend in performance when front-end Web servers are added to a system.
Note that systems that only support read operations, such as a static portal site, can maintain a higher level of throughput than a system that supports both read and write operations.
.gif)
Estimate user response time
First, determine if your organization can tolerate a slower user response time or if your organization demands a faster user response time. Response times are categorized in the following way:
Slow (3-5 seconds) User response times can slow to this rate without issue.
Recommended (1-2 seconds) The average user response time target.
Fast (<1 second) For organizations whose businesses demand speed.
Based on the user response time that most closely matches your organization’s requirements, determine the throughput target based on the number of users. Because a single-server deployment can capably serve up to 1,000 users, 500 users is the fewest listed.
The following table lists throughput targets based on user response times.
| Total users | Slow (RPS) | Recommended (RPS) | Fast (RPS) |
|---|
500 | .4 | .5 | .7 |
1,000 | .7 | 1.0 | 1.2 |
5,000 | 4.0 | 5.0 | 6.0 |
10,000 | 9.0 | 10.0 | 12.0 |
20,000 | 18.0 | 20.0 | 24.0 |
50,000 | 40.0 | 50.0 | 60.0 |
100,000 | 90.0 | 100.0 | 120.0 |
After you have identified the throughput target that is appropriate for your organization, re-evaluate the test data for the sample topologies to validate your choice of topology and hardware.
Estimate concurrency rate
Next, estimate your organization’s concurrency rate. Concurrency rate is the percentage of users that are using the solution at the same time. Use the concurrency rate that you expect during peak hours. The following table recommends throughput targets based on the total number of users and the concurrency rate.
The following table lists throughput targets in RPS at various concurrency rates.
| Total users | 5% concurrency rate | 10% | 15% | 25% | 50% | 75% | 100% |
|---|
500 | .25 | .5 | .75 | 1.25 | 2.5 | 3.75 | 5.0 |
1000 | .5 | 1.0 | 1.5 | 2.5 | 5.0 | 7.5 | 10.0 |
5,000 | 2.5 | 5.0 | 7.5 | 12.5 | 25.0 | 37.5 | 50.0 |
10,000 | 5.0 | 10.0 | 15.0 | 25.0 | 50.0 | 75.0 | 100.0 |
20,000 | 10.0 | 20.0 | 30.0 | 50.0 | 100.0 | 150.0 | 200.0 |
50,000 | 25.0 | 50.0 | 75.0 | 125.0 | 250.0 | 375.0 | 500.0 |
100,000 | 50.0 | 100.0 | 150.0 | 250.0 | 500.0 | 750.0 | 1,000 |
After you have identified the throughput target that is appropriate for you organization based on your expected concurrency rate, re-evaluate the test data for the sample topologies to validate your choice of topology and hardware.
Estimate indexing window
Finally, verify that indexing jobs can be contained within an overnight window of 12 hours. In a Windows SharePoint Services 3.0 collaboration environment, indexing jobs typically represent the longest-running operation that is not initiated by users. You will need to perform testing in your own environment to determine the duration of indexing jobs, and whether the throughput consumed by indexing jobs interferes with your target user response times.
This section provides tables that can help you estimate disk space requirements for the collaboration scenario. Disk space requirements for your hardware will vary greatly by server role and scenario, and are dependent upon data to be stored in the content database, caching requirements, and external content crawled by search. Where possible in the following discussion, numbers are filled into the formulas based on disk space requirements that can be predicted (such as the size of installation files).
First, estimate your disk space requirements by server role. Then, based on your planned topology, add up the requirements where server roles will share the same physical server computer. Finally, ensure that your hardware is appropriately sized to accommodate your disk space requirements.
Additionally, best practices for SQL Server storage should be applied to database servers. For more information, see Physical Database Storage Design (http://go.microsoft.com/fwlink/?LinkId=78853&clcid=0x409).If more than one database server is implemented, apply the SQL disk space factor separately for each search server.
Note: |
|---|
Operating system and program files should stored separately from data files on a separate drive or a Redundant Array of Independent Disks (RAID). |
Database server disk space requirements
Use the following table to calculate disk space requirements for database servers in your farm. If more than one database server is implemented, calculate this sum separately for each search server.
| Category | Description | Number |
|---|
Operating system files | Disk space required for Windows Server 2003 Setup and system files. For more information, see Choosing a File System for the Installation Partition (http://go.microsoft.com/fwlink/?LinkId=78866&clcid=0x409). | 4 GB |
Swap file | The swap file size will be the same as the physical memory size, by default. | |
SQL Server installation files | Disk space required for SQL Server Setup and program files. For more information, see SQL Server 2005 Standard Edition System Requirements (http://go.microsoft.com/fwlink/?LinkId=78870&clcid=0x409). | 425 megabytes (MB) |
Database log files | Disk space for log files will vary based on log settings and the number of databases. For more information, see Physical Database Storage Design (http://go.microsoft.com/fwlink/?LinkId=78853&clcid=0x409). | |
Configuration database | The configuration database will not grow past this size. | 1.5 GB |
Content databases | Estimate the initial volume of content that will be stored in content databases. Consider the following factors: Multiply the size of initial content by 1.3 for the size of stored content in a SQL database. If versioning is used for documents, a copy of each version is stored in the database.
| |
Future growth | Future growth is a key characteristic of the collaboration scenario. You should plan for twice the amount of data that you initially plan to experience. Enter a number that is appropriate for your environment. | |
Free space | Leave at least 25% free space for each hard disk or volume. | |
| Total | |
Search server disk space requirements
Use the following table to calculate disk space requirements for search servers in your farm. If more than one Windows SharePoint Services 3.0 search server is implemented, calculate this sum separately for each search server.
| Category | Description | Number |
|---|
Operating system files | Disk space required for Windows Server 2003 setup and system files. For more information, see Choosing a File System for the Installation Partition (http://go.microsoft.com/fwlink/?LinkId=78866&clcid=0x409). | 4 GB |
Paging file | The paging file size will be the same as the physical memory size, by default. | |
Windows SharePoint Services 3.0 installation files | This number is an approximation based on a full installation. | 1.3 GB |
The Microsoft .NET Framework version 3.0 | | 60 MB |
Content index | Add the amount of content in content databases that will be indexed by the index server. Divide this amount by 2. The resulting number is the estimated size of the content index. | |
Free space | Leave at least 25% free space for each hard disk or volume. | |
| Total | |
Web server disk space requirements
Use the following table to calculate disk space requirements for Web servers in your farm.
| Category | Description | Number |
|---|
Operating system files | Disk space required for Windows Server 2003 setup and system files. For more information, see Choosing a File System for the Installation Partition (http://go.microsoft.com/fwlink/?LinkId=78866&clcid=0x409). | 4 GB |
Swap file | The swap file size will be the same as the physical memory size, by default. | |
Windows SharePoint Services 3.0 installation files | | 1.3 GB |
The .NET Framework version 3.0 | | 60 MB |
Free space | Leave at least 25% free space for each hard disk or volume. | |
| Total | |
Using performance counters to monitor the health of your system is an important factor in determining when you need to scale your system up or out. Use the information in the following tables to determine what performance counters to monitor, and to which process the performance counters should be applied.
Web server
The following table shows performance counters and processes to monitor for Web servers in your farm.
| Performance counter | Apply to process | Notes |
|---|
% Processor time | Total | Shows the percentage of elapsed time that this thread used the processor to execute instructions. |
% Memory utilization | Application pool | Shows the average utilization of system memory for the application pool. You need to identify the correct application pool to monitor. The basic guideline is to identify peak memory utilization, and assign that number plus 10% to the application pool. |
Database server
The following table shows performance counters and processes to monitor for database servers in your farm.
| Performance counter | Apply to process | Notes |
|---|
% Processor time | Total | Shows the percentage of elapsed time that this thread used the processor to execute instructions. |
% Memory utilization | Total | Shows the average utilization of system memory. |