This topic describes performance and scalability guidelines for Microsoft Windows SharePoint Services. The goal is to provide administrators with the information they need to purchase hardware, choose a server configuration, and manage the capacity of their Windows SharePoint Services deployments.
There are two kinds of capacity guidelines for Windows SharePoint Services:
- Throughput — The approximate number of transactions per second that a given server configuration for Windows SharePoint Services can handle. This guideline helps you determine how many simultaneous users can use a given server resource without negatively affecting performance.
- Scale — The approximate number of objects that can be created in a given scope, for example, the number of documents per folder. This guideline helps you determine the server configuration required to host a given number of objects.
About Capacity and Throughput Guidelines
The goal of the throughput testing is to measure the number of transactions per second that a server running Windows SharePoint Services can handle. The measured throughput is then used to extrapolate the number of simultaneous users by using a model of typical user behavior.
A rough rule of thumb is that 1 transaction per second maps to 1000 users. This rule of thumb is derived by applying the following model for user behavior:
10% peak concurrency
- 100 simultaneous users (10% of 1000)
100 seconds per request per user (36 requests per hour per user)
- 100 simultaneous users/100 seconds per user per transaction
- 1 transaction/second
Capacity Testing Methodology
The Windows SharePoint Services team tests throughput by using automated load generation tools that work in machine time, not user time. In other words, real user behavior is not modeled in the test lab; server capacity is measured using fictitious "super users" who issue requests as fast as the server can respond. This is done to ensure that we’re measuring the capacity of the server, not the capacity of the load generation tool.
There are two main variables in the throughput testing:
- Transaction mix — The mix of user transactions, such as browse home page, save document, and edit list item, and so on.
- Server configuration — The configuration, such as a single server or a server farm with two Web servers, and so on.
About the Transaction Mix
The transaction mix defines the types and frequency of operations seen by the server, such browse home page, edit document, and so on. This topic contains two different transaction mixes:
- Read/write — This is the typical SharePoint site operation mix. Most of the load is browsing to pages and documents in the site, but there is a substantial amount of list and document authoring as well. For details on the read/write operation mix, see Tested Read/Write Transaction Mix.
- Read only — This is the typical load of a reference site where the data on the server is changing very slowly. For this mix, the entire test load is on the home page of the site. The home page is one of the most expensive pages to render, so this is a fairly conservative read-only load.
About the Server Configuration
The server configuration describes how computers are configured to run the site. Windows SharePoint Services supports a server farm design where multiple Web servers can be used to serve the same content, as in the following illustration.
Administrators can add capacity to both the Web server and database server tiers by adding more server computers to the server farm. The total capacity of the server farm depends on the number of Web servers, the number of database servers, and the ratio of Web servers to database servers.
The following configurations were tested:
- Single computer — One computer running both the Web server and database server.
- N-by-one server farm — One to eight computers running the Web server and a separate computer running the database server. This covers the most common server farm scenarios. These tests determine the marginal throughput increase for each additional Web server and the optimum ratio of Web servers to database servers. As the test results show, adding Web servers to the server farm adds capacity linearly until the fourth or fifth Web server. Beyond five Web servers for each database server, the system bottleneck becomes the database server. To add even more capacity you need to add a database server to the server farm.
- Eight-by-two server farm — Eight Web servers and two database servers. This test validates the database scale out. An 8x2 server farm has roughly twice the total throughput as a 4x1 server farm. Extending the scale out model to 12x3 and 16x4 becomes a matter of providing sufficient network bandwidth for the server farm.
For the test hardware specifications, see Tested Hardware and Software.
About Throughput to Users
The Windows SharePoint Services performance lab found the peak throughput for each combination of transaction mix and server configuration. The throughput is measured in transactions per second. These transactions-per-second measurements can be converted to the total number of users 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 has two variables:
- Concurrency — The maximum percentage of the total user base who will be using the system simultaneously. The Windows SharePoint Services models all use 10% concurrency.
- Request rate — The number of requests per hour an active user generates on average. Windows SharePoint Services uses four models for user behavior:
- 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.
The following table shows the throughput results for each transaction mix, server configuration, and user model. The peak throughput point is highlighted in bold.
||Transactions per second
||Total user count
|1 by 1
|2 by 1
|3 by 1
|4 by 1
|5 by 1
|6 by 1
|7 by 1
|8 by 1
|8 by 2
The following chart shows that adding additional Web servers to a single database server farm increases the capacity of the server farm, but only to a certain point. For the read-only transaction mix, the capacity of the server farm increases steadily for up to four Web servers and stops increasing at six Web servers. For the read/write mix, the capacity does not increase significantly beyond three Web servers.
Total capacity does not increase because the throughput is now limited by the one database server computer. Extending capacity beyond this point requires adding another database server to the server farm.
The following chart shows that adding an additional database server to the farm can extend the total capacity of the farm if there are sufficient web servers to handle the load.
About Capacity and Scale Guidelines
The capacity of Windows SharePoint Services is also affected by scalability (how many objects can be created in a given scope, such as number of documents per folder). There are very few hard limits in Windows SharePoint Services. Most of the scale guidelines are determined by performance. In other words, you can exceed these guidelines, but you may find the resulting performance to be unacceptable.
One of the most important scale dimensions is site collections per database. This scale dimension depends on the number of indexes on the database. As the number of site collections increases, the performance of the system degrades as it serves more and more different site collections. As you can see in following chart, there is no hard limit where performance becomes unacceptable, but performance does degrades faster beyond 10,000 site collections and drops below 100 responses per second beyond 50,000 site collections.
The other scale guidelines are shown in the following table. None of these are hard limits enforced by the system. They are guidelines for designing a server that has good overall performance.
||Guideline for optimum performance
||Total throughput degrades as the number of site collections increases.
||The interface for enumerating subsites of a given Web site does not perform well much beyond 2,000 subsites.
||You can create a very large total number of Web sites by nesting the subsites. For example, 100 sites each with 1000 subsites is 100,100 Web sites.
||The interfaces for enumerating documents in a folder do not perform well beyond a thousand entries.
||You can create very large document libraries by nesting folders.
||The size of the access control list is limited to a few thousand security principals, in other words users and groups in the Web site.
||You can add millions of people to your Web site by using Microsoft Windows security groups to manage security instead of using individual users.
||The interface for enumerating list items does not perform well beyond a few thousand items.
||Pages with more than 100 Web Parts are slow to render.
|Web Part personalization
||Pages with more than a few thousand user personalizations are slow to render.
||The interface for enumerating lists and libraries in a Web site does not perform well beyond a few thousand entries.
||The file save performance degrades as the file size grows. The default maximum is 50 MB. This maximum is enforced by the system, but you can change it to any value up to 2 GB (2047 MB) if you have applied Windows SharePoint Services Service Pack 1. For more information, see Configuring large file support in Installing and Using Service Packs for Windows SharePoint Services.
Tested Read/Write Transaction Mix
|End user operation
|Get home page
|Get list page (HTML)
|Get list page (grid)
|Get list form
|Get static document
|Insert list item
|Edit list item
|Delete list item
|Open document for edit
|Short term check-out
|Get cached document
Note There are roughly two supporting transactions for each end-user transaction. In other words, the end-user operations make up about a third of the total transaction load on the server.
Tested Hardware and Software
The following hardware was used to gather the performance and scalability data in this topic.
The Web server computers were Compaq DL360s with two 1 GHz Pentium 3 processors and 1 GB of memory. The computers were running a prerelease version of Microsoft Windows Server 2003, Enterprise Edition, build 3718.
Note The single computer tests were run on Web server hardware.
The database server computers were Compaq DL380s with two 1 GHz Pentium 3 processors and 2 GB of memory. The computers were running Microsoft SQL Server 2000 SP2 and a prerelease version of Windows Server 2003, Enterprise Edition, build 3718.