Prasad Bolla's SharePoint Blog

Click Here to go through the Interesting posts within my Blog.

Click Here to go through the new posts in my blog.

Tuesday, January 31, 2012

SharePoint 2010 Capacity Management: Boundaries and Limits

This article describes software boundaries and limits of Microsoft SharePoint Server 2010. These include the following:
  • Boundaries: Static limits that cannot be exceeded by design
  • Thresholds: Configurable limits that can be exceeded to accommodate specific requirements
  • Supported limits: Configurable limits that have been set by default to a tested value
note Note:
The capacity planning information in this document provides guidelines for you to use in your planning. It is based on testing performed at Microsoft, on live properties. However, your results are likely to vary based on the equipment you use and the features and functionality that you implement for your sites.

Overview of boundaries and limits

This article contains information to help you understand the tested performance and capacity limits of SharePoint Server 2010, and offers guidelines for how limits relate to acceptable performance. Use the information in this article to determine whether your planned deployment falls within acceptable performance and capacity limits, and to appropriately configure limits in your environment.
The test results and guidelines provided in this article apply to a single SharePoint Server 2010 farm. Adding servers to the installation might not increase the capacity limits of the objects that are listed in the tables in the Limits and boundaries section later in this topic. On the other hand, adding server computers increases the throughput of a server farm, which might be necessary to achieve acceptable performance with many objects. In some cases, the requirements for high numbers of objects in a solution might require more servers in the farm.
Note that there are many factors that can affect performance in a given environment, and each of these factors can affect performance in different areas. Some of the test results and recommendations in this article might be related to features or user operations that do not exist in your environment, and therefore do not apply to your solution. Only thorough testing can give you exact data related to your own environment.

Boundaries, thresholds and supported limits

In SharePoint Server 2010, there are certain limits that are by design and cannot be exceeded, and other limits that are set to default values that may be changed by the farm administrator. There are also certain limits that are not represented by a configurable value, such as the number of site collections per Web application.
  • Boundaries are absolute limits that cannot be exceeded by design. It is important to understand these limits to ensure that you do not make incorrect assumptions when you design your farm.

    An example of a boundary is the 2 GB document size limit; you cannot configure SharePoint Server to store documents that are larger than 2 GB. This is a built-in absolute value, and cannot be exceeded by design.
  • Thresholds are those that have a default value that cannot be exceeded unless the value is modified. Thresholds can, in certain circumstances, be exceeded to accommodate variances in your farm design, but it is important to understand that doing this may affect the performance of the farm in addition to the effective value of other limits.

    The default value of certain thresholds can only be exceeded up to an absolute maximum value. A good example is the document size limit. By default, the default document size threshold is set to 50MB, but can be changed to support the maximum boundary of 2GB.
  • Supported limits define the tested value for a given parameter. The default values for these limits were defined by testing, and represent the known limitations of the product. Exceeding supported limits may cause unexpected results, significant decrease in performance, or other harmful effects.

    Some supported limits are configurable parameters that are set by default to the recommended value, while other supported limits relate to parameters that are not represented by a configurable value.
An example of a supported limit is the number of site collections per Web application. The supported limit is 250,000, which is the largest number of site collections per Web application that met performance benchmarks during testing.
It is important to be aware that many of the limit values that are provided in this document represent a point in a curve that describes an increasing resource load and concomitant decrease in performance as the value increases. Therefore, exceeding certain limits, such as the number of site collections per Web application, may only result in a fractional decrease in farm performance. However, in most cases, operating at or near an established limit is not a best practice, as acceptable performance and reliability targets are best achieved when a farm’s design provides for a reasonable balance of limits values.
Thresholds and supported limits guidelines are determined by performance. In other words, you can exceed the default values of the limits, but as you increase the limit value, farm performance and the effective value of other limits may be affected. Many limits in SharePoint Server can be changed, but it is important to understand how changing a given limit affects other parts of the farm.

How limits are established

In SharePoint Server 2010, thresholds and supported limits are established through testing and observation of farm behavior under increasing loads up to the point where farm services and operations reach their effective operational limits. Some farm services and components can support a higher load than others so that in some cases you must assign a limit value based on an average of several factors.
For example, observations of farm behavior under load when site collections are added indicate that certain features exhibit unacceptably high latency while other features are still operating within acceptable parameters. Therefore, the maximum value assigned to the number of site collections is not absolute, but is calculated based on an expected set of usage characteristics in which overall farm performance would be acceptable at the given limit under most circumstances.
Obviously, if some services are operating under parameters that are higher than those used for limits testing, the maximum effective limits of other services will be reduced. It is therefore important to execute rigorous capacity management and scale testing exercises for specific deployments in order to establish effective limits for that environment.
Note: We do not describe the hardware that was used to validate the limits in this document, because the limits were collected from multiple farms and environments. For descriptions of the farms we used in testing, see Performance and capacity test results and recommendations (SharePoint Server 2010)1 and Performance and capacity technical case studies (SharePoint Server 2010)2.

The Equalizer Metaphor

You can consider thresholds and supported limits as sliders on a graphic equalizer, with each limit representing a certain frequency. In this metaphor, increasing the value of one limit may decrease the effective value of one or more other limits.
Imagine that one slider represents the maximum number of documents per library, a supported limit with a maximum tested value of around 30 million. However, this value depends on another slider, which represents the maximum size of documents in the farm, a threshold with a default value of 50 MB.
If you change the maximum size of documents to 1 GB to accommodate videos or other large objects, the number of documents your library can serve to users efficiently is reduced accordingly. For example, a given farm’s hardware configuration and topology may support 1 million documents up to 50 MB. However, the same farm with the same number of documents cannot meet the same latency and throughput targets if the farm is serving a larger average document size because the file size limit was set to 1 GB.
The degree to which the maximum number of documents is reduced in this example is difficult to predict and is based on the number of large files in the library, the volume of data that they contain, the farm’s usage characteristics, and the availability of hardware resources.

Limits and boundaries

This section lists the objects that can be a part of a solution and provides guidelines for acceptable performance for each kind of object. Acceptable performance means that the system as tested can support that number of objects, but that the number cannot be exceeded without some decrease in performance or a reduction in the value of related limits. Objects are listed both by scope and by feature. Limits data is provided, together with notes that describe the conditions under which the limit is obtained and links to additional information where available.
Use the guidelines in this article to review your overall solution plans. If your solution plans exceed the recommended guidelines for one or more objects, take one or more of the following actions:
  • Evaluate the solution to ensure that compensations are made in other areas.
  • Flag these areas for testing and monitoring as you build your deployment.
  • Redesign or partition the solution to ensure that you do not exceed capacity guidelines.

Limits by hierarchy

This section provides limits sorted by the logical hierarchy of a SharePoint Server 2010 farm.

Web application limits

The following table lists the recommended guidelines for Web applications.

 

Limit Maximum value Limit type Notes
Content database 300 per Web application Supported With 300 content databases per Web application, end user operations such as opening the site or site collections are not affected. But administrative operations such as creating a new site collection will experience decrease in performance. We recommend that you use Windows PowerShell to manage the Web application when a large number of content databases are present, because the management interface becomes slow and difficult to navigate.
Zone 5 per Web application Boundary The number of zones defined for a farm is hard-coded to 5. Zones include Default, Intranet, Extranet, Internet, and custom.
Managed path

20 per Web application Supported Managed paths are cached on the Web server, and CPU resources are used to process incoming requests against the managed path list.
Exceeding 20 managed paths per Web application adds more load to the Web server for each request.
If you plan to exceed twenty managed paths in a given Web application, we recommend that you test for acceptable system performance.
Solution cache size 300 MB per Web application Threshold The solution cache allows the InfoPath Forms service to hold solutions in cache in order to speed up retrieval of the solutions. If the cache size is exceeded, solutions are retrieved from disk, which may slow down response times. You can configure the size of the solution cache by using the Windows PowerShell cmdlet Set-SPInfoPathFormsService. For more information, see Set-SPInfoPathFormsService3.
Site collection 250,000 per Web application Supported The maximum recommended number of site collections per Web application is 250,000.
Note that this limit is affected by other factors that might reduce the effective number of site collections that can be supported by a given Web application. Care must be exercised to avoid exceeding supported limits when a container object, such as a content database, contains a large number of other objects.
For example, in a farm that contains a large number of Web applications, the total number of site collections might reach a number that cannot effectively be supported by farm resources. This can be true even when both the number of Web applications per farm and the number of site collections per Web application fall within their supported limits.
Similarly, if a farm contains a smaller total number of content databases, each of which contains a large number of site collections, farm performance might be adversely affected long before the supported limit for the number of site collections is reached.
The following case illustrates this point.
Farm A contains a Web application that has 200 content databases, a supported configuration. If each of these content databases contains 200 site collections, the total number of site collections in the Web application will be 40,000, which falls within supported limits. However, if each content database contains 2,000 site collections, even though this number is supported for a content database, the total number of site collections in the Web application will be 400,000, which exceeds the limit for the number of site collections per Web application.

Web server and application server limits

The following table lists the recommended guidelines for Web servers on the farm.

 

Limit Maximum value Limit type Notes
Application pools 10 per Web server Supported The maximum number is determined by hardware capabilities.
This limit is dependent largely upon:
  • The amount of RAM allocated to the Web servers
  • The workload that the farm is serving, that is, the user base and the usage characteristics (a single highly active application pools can reach 10 GB or more)

Content database limits

The following table lists the recommended guidelines for content databases.

 

Limit Maximum value Limit type Notes
Content database size (general usage scenarios) 200 GB per content database Supported We strongly recommended limiting the size of content databases to 200 GB, except when the circumstances in the following rows in this table apply.
If you are using Remote BLOB Storage (RBS), the total volume of remote BLOB storage and metadata in the content database must not exceed this limit.
Content database size (all usage scenarios) 4 TB per content database Supported Content databases of up to 4 TB are supported when the following requirements are met:
  • Disk sub-system performance of 0.25 IOPs per GB. 2 IIOPs per GB is recommended for optimal performance.
  • You must have developed plans for high availability, disaster recovery, future capacity, and performance testing.
You should also carefully consider the following factors:
  • Requirements for backup and restore may not be met by the native SharePoint Server 2010 backup for content databases larger than 200 GB. It is recommended to evaluate and test SharePoint Server 2010 backup and alternative backup solutions to determine the best solution for your specific environment.
  • It is strongly recommended to have proactive skilled administrator management of the SharePoint Server 2010 and SQL Server installations.
  • The complexity of customizations and configurations on SharePoint Server 2010 may necessitate refactoring (or splitting) of data into multiple content databases. Seek advice from a skilled professional architect and perform testing to determine the optimum content database size for your implementation. Examples of complexity may include custom code deployments, use of more than 20 columns in property promotion, or features listed as not to be used in the over 4 TB section below.
  • Refactoring of site collections allows for scale out of a SharePoint Server 2010 implementation across multiple content databases. This permits SharePoint Server 2010 implementations to scale indefinitely. This refactoring will be easier and faster when content databases are less than 200 GB.
  • It is suggested that for ease of backup and restore that individual site collections within a content database be limited to 100 GB. For more information, see Site collection limits.
For more information on SharePoint Server 2010 data size planning, see Storage and SQL Server capacity planning and configuration (SharePoint Server 2010)4.
Important Important:
Content databases of over 4 TB, except for use in document archive scenarios (described in the row below), are not recommended. Upgrading of site collections within these content databases is likely to be very difficult and time consuming.
It is strongly recommended that you scale out across multiple content databases, rather than exceed 4 TB of data in a single content database.

Content database size (document archive scenario) No explicit content database limit Supported Content databases with no explicit size limit for use in document archive scenarios are supported when the following requirements are met:
  • You must meet all requirements from the “Content database size (all usage scenarios)” limit earlier in this table, and you should ensure that you have carefully considered all the factors discussed in the Notes field of that limit.
  • SharePoint Server 2010 sites must be based on Document Center or Records Center site templates.
  • Less than 5% of the content in the content database is accessed each month on average, and less than 1% of content is modified or written each month on average.
  • Do not use alerts, workflows, link fix-ups, or item level security on any SharePoint Server 2010 objects in the content database.

    noteNote:
    Document archive content databases can be configured to accept documents from Content Routing workflows.
For more information about large-scale document repositories, see Estimate Performance and Capacity Requirements for Large Scale Document Repositories (http://technet.microsoft.com/en-us/library/ff608068.aspx), and the Typical large-scale content management scenarios5 section of the article Enterprise content storage planning (SharePoint Server 2010)6.
Content database items 60 million items including documents and list items Supported The largest number of items per content database that has been tested on SharePoint Server 2010 is 60 million items, including documents and list items. If you plan to store more than 60 million items in SharePoint Server 2010, you must deploy multiple content databases.
Site collections per content database 2,000 recommended
5,000 maximum
Supported We strongly recommended limiting the number of site collections in a content database to 2,000. However, up to 5,000 site collections in a database are supported.
These limits relate to speed of upgrade. The larger the number of site collections in a database, the slower the upgrade.
The limit on the number of site collections in a database is subordinate to the limit on the size of a content database that has more than one site collection (200 GB). Therefore, as the number of site collections in a database increases, the average size of the site collections it contains must decrease.
Exceeding the 2,000 site collection limit puts you at risk of longer downtimes during upgrades. If you plan to exceed 2,000 site collections, we recommend that you have a clear upgrade strategy, and obtain additional hardware to speed up upgrades and software updates that affect databases.
To set the warning level for the number of sites in a content database, use the Windows PowerShell cmdlet Set-SPContentDatabase with the -WarningSiteCount parameter. For more information, see Set-SPContentDatabase7.
Remote BLOB Storage (RBS) storage subsystem on Network Attached Storage (NAS) Time to first byte of any response from the NAS cannot exceed 20 milliseconds


Boundary When SharePoint Server 2010 is configured to use RBS, and the BLOBs reside on NAS storage, consider the following boundary.
From the time that SharePoint Server 2010 requests a BLOB, until it receives the first byte from the NAS, no more than 20 milliseconds can pass.


Site collection limits

The following table lists the recommended guidelines for site collections.

 

Limit Maximum value Limit type Notes
Web site 250,000 per site collection Supported The maximum recommended number of sites and subsites is 250,000 sites.
You can create a very large total number of Web sites by nesting subsites. For example, in a shallow hierarchy with 100 sites, each with 1,000 subsites, you would have a total of 100,000 Web sites. Or a deep hierarchy with 100 sites, each with 10 subsite levels would also contain a total of 100,000 Web sites.
Note: Deleting or creating a site or subsite can significantly affect a site’s availability. Access to the site and subsites will be limited while the site is being deleted. Attempting to create many subsites at the same time may also fail.
Site collection size Maximum size of the content database Supported A site collection can be as large as the content database size limit for the applicable usage scenario. For more information about the different content database size limits for specific usage scenarios, see the Content database limits table in this article.
In general, we strongly recommend limiting the size of site collections to 100 GB for the following reasons:
  • Certain site collection actions, such as site collection backup/restore or the Windows PowerShell cmdlet Move-SPSite, cause large Microsoft SQL Server operations which can affect performance or fail if other site collections are active in the same database. For more information, see Move-SPSite8.
  • SharePoint site collection backup and restore is only supported for a maximum site collection size of 100 GB. For larger site collections, the entire content database must be backed up. If multiple site collections larger than 100 GB are contained in a single content database, backup and restore operations can take a long time and are at risk of failure.

List and library limits

The following table lists the recommended guidelines for lists and libraries. For more information, see Designing large lists and maximizing list performance (SharePoint Server 2010)9.

 

Limit Maximum value Limit type Notes
List row size 8,000 bytes per row Boundary Each list or library item can only occupy 8,000 bytes in total in the database. 256 bytes are reserved for built-in columns, which leaves 7,744 bytes for end-user columns. For details on how much space each kind of field consumes, see Column limits.
File size 2 GB Boundary The default maximum file size is 50 MB. This can be increased up to 2 GB, however a large volume of very large files can affect farm performance.
Documents 30,000,000 per library Supported You can create very large document libraries by nesting folders, or using standard views and site hierarchy. This value may vary depending on how documents and folders are organized, and by the type and size of documents stored.

Major versions 400,000 Supported If you exceed this limit, basic file operations—such as file open or save, delete, and viewing the version history— may not succeed.
Items 30,000,000 per list Supported You can create very large lists using standard views, site hierarchies, and metadata navigation. This value may vary depending on the number of columns in the list and the usage of the list.
Rows size limit 6 table rows internal to the database used for a list or library item Supported Specifies the maximum number of table rows internal to the database that can be used for a list or library item. To accommodate wide lists with many columns, each item may be wrapped over several internal table rows, up to six rows by default. This is configurable by farm administrators through the object model only. The object model method is SPWebApplication.MaxListItemRowStorage10.
Bulk operations 100 items per bulk operation Boundary The user interface allows a maximum of 100 items to be selected for bulk operations.
List view lookup threshold 8 join operations per query Threshold Specifies the maximum number of joins allowed per query, such as those based on lookup, person/group, or workflow status columns. If the query uses more than eight joins, the operation is blocked. This does not apply to single item operations. When using the maximal view via the object model (by not specifying any view fields), SharePoint will return up to the first eight lookups.
List view threshold 5,000 Threshold Specifies the maximum number of list or library items that a database operation, such as a query, can process at the same time outside the daily time window set by the administrator during which queries are unrestricted.
List view threshold for auditors and administrators 20,000 Threshold Specifies the maximum number of list or library items that a database operation, such as a query, can process at the same time when they are performed by an auditor or administrator with appropriate permissions. This setting works with Allow Object Model Override.
Subsite 2,000 per site view Threshold The interface for enumerating subsites of a given Web site does not perform well as the number of subsites surpasses 2,000. Similarly, the All Site Content page and the Tree View Control performance will decrease significantly as the number of subsites grows.
Coauthoring in Microsoft Word and Microsoft PowerPoint for .docx, .pptx and .ppsx files 10 concurrent editors per document Threshold Recommended maximum number of concurrent editors is 10. The boundary is 99.
If there are 99 co-authors who have a single document opened for concurrent editing, any user after the 100th user sees a "File in use" error and have to view a read-only copy.
More than 10 co-editors will lead to a gradually degraded user experience with more conflicts and users will have to go through more iterations to get their changes to upload successfully.
Security scope 1,000 per list Threshold The maximum number of unique security scopes set for a list should not exceed 1,000.
A scope is the security boundary for a securable object and any of its children that do not have a separate security boundary defined. A scope contains an Access Control List (ACL), but unlike NTFS ACLs, a scope can include security principals that are specific to SharePoint Server. The members of an ACL for a scope can include Windows users, user accounts other than Windows users (such as forms-based accounts), Active Directory groups, or SharePoint groups.

Column limits

SharePoint Server 2010 data is stored in SQL Server tables. To allow for the maximum number of possible columns in a SharePoint list, SharePoint Server will create several rows in the database when data will not fit on a single row. This is called row wrapping.
Each time that a row is wrapped in SQL Server, an additional query load is put on the server when that item is queried because a SQL join must be included in the query. To prevent too much load, by default a maximum of six SQL Server rows are allowed for a SharePoint item. This limit leads to a particular limitation on the number of columns of each type that can be included in a SharePoint list. The following table describes the limits for each column type.
The row wrapping parameter can be increased beyond six, but this may result in too much load on the server. Performance testing is recommended before exceeding this limit. For more information, see Designing large lists and maximizing list performance (SharePoint Server 2010)9.
Each column type has a size value listed in bytes. The sum of all columns in a SharePoint list cannot exceed 8,000 bytes. Depending on column usage, users can reach the 8,000 byte limitation before reaching the six-row row wrapping limitation.

 

Limit Maximum value Limit type Size per column Notes
Single line of text 276 Threshold 28 bytes SQL Server row wrapping occurs after each 64 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 384 Single line of text columns per SharePoint list (6 * 64 = 384). However, because the limit per SharePoint list item is 8,000 bytes, of which 256 bytes are reserved for built-in SharePoint columns, the actual limit is 276 Single line of text columns.
Multiple Lines of Text 192 Threshold 28 bytes SQL Server row wrapping occurs after each 32 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 192 Multiple lines of text columns per SharePoint list (6 * 32 = 192).
Choice 276 Threshold 28 bytes SQL Server row wrapping occurs after each 64 columns in a SharePoint list. The default row wrapping value of 6 allows for a maximum of 384 Choice columns per SharePoint list (6 * 64 = 384); ); however because the limit per SharePoint list item is 8,000 bytes, of which 256 bytes are reserved for built-in SharePoint columns, the actual limit should be 276 Choice columns.
Number 72 Threshold 12 bytes SQL Server row wrapping occurs after each 12 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 72 Number columns per SharePoint list (6 * 12 = 72).
Currency 72 Threshold 12 bytes SQL Server row wrapping occurs after each 12 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 72 Currency columns per SharePoint list (6 * 12 = 72).
Date and Time 48 Threshold 12 bytes SQL Server row wrapping occurs after each eight columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 48 Date and Time columns per SharePoint list (6 * 8 = 48).
Lookup 96 Threshold 4 bytes SQL Server row wrapping occurs after each 16 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 96 single value Lookup columns per SharePoint list (6 * 16 = 96).
Yes / No 96 Threshold 5 bytes SQL Server row wrapping occurs after each 16 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 96 Yes / No columns per SharePoint list (6 * 16 = 96).
Person or group 96 Threshold 4 bytes SQL Server row wrapping occurs after each 16 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 96 Person or Group columns per SharePoint list (6 * 16 = 96).
Hyperlink or picture 138 Threshold 56 bytes SQL Server row wrapping occurs after each 32 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 192 Hyperlink or Picture columns per SharePoint list (6 * 32 = 192) ); however because the limit per SharePoint list item is 8,000 bytes, of which 256 bytes are reserved for built-in SharePoint columns, the actual limit should be 138 Hyperlink or Picture columns.
Calculated 48 Threshold 28 bytes SQL Server row wrapping occurs after each eight columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 48 Calculated columns per SharePoint list (6 * 8 = 48).
GUID 6 Threshold 20 bytes SQL Server row wrapping occurs after each column in a SharePoint list. The default row wrapping value of six allows for a maximum of 6 GUID columns per SharePoint list (6 * 1 = 6).
Int 96 Threshold 4 bytes SQL Server row wrapping occurs after each 16 columns in a SharePoint list. The default row wrapping value of six allows for a maximum of 96 Int columns per SharePoint list (6 * 16 = 96).
Managed metadata 94 Threshold 40 bytes for the first, 32 bytes for each subsequent The first Managed Metadata field added to a list is allocated four columns:
  • A lookup field for the actual tag
  • A hidden text field for the string value
  • A lookup field for the catch all
  • A lookup field for spillover of the catch all

Each subsequent Managed Metadata field added to a list adds two more columns:
  • A lookup field for the actual tag
  • A hidden text field for the string value

The maximum number of columns of Managed Metadata is calculated as (14 + (16 * (n-1))) where n is the row mapping value (default of 6).

External Data columns have the concept of a primary column and secondary columns. When you add an external data column, you can select some secondary fields of the external content type that you want to be added to the list. For example, given an External Content Type “Customer” which has fields like “ID”, “Name”, “Country”, and “Description”, when you add an External Data column of type “Customer” to a list, you can add secondary fields to show the “ID”, “Name” and “Description” of the Customer. Overall these are the columns that get added:
  • Primary column: A text field.
  • Hidden Id column: A multi-line text field.
  • Secondary columns: Each secondary column is a text/number/Boolean/multi-line text that is based on the data type of the secondary column as defined in the Business Data Catalog model. For example, ID might be mapped to a Number column; Name might be mapped to a Single line of text column; Description might be mapped to a Multiple lines of text column.

Page limits

The following table lists the recommended guidelines for pages.

 

Limit Maximum value Limit type Notes
Web parts 25 per wiki or Web part page Threshold This figure is an estimate based on simple Web Parts. The complexity of the Web parts dictates how many Web Parts can be used on a page before performance is affected.

Security limits

 

Limit Maximum value Limit type Notes
Number of SharePoint groups a user can belong to 5,000 Supported This is not a hard limit but it is consistent with Active Directory guidelines. There are several things that affect this number:
  • The size of the user token
  • The groups cache: SharePoint Server 2010 has a table that caches the number of groups a user belongs to as soon as those groups are used in access control lists (ACLs).
  • The security check time: as the number of groups that a user is a member of increases, the time that is required for the access check increases also.
Users in a site collection 2 million per site collection Supported You can add millions of people to your Web site by using Microsoft Windows security groups to manage security instead of using individual users.
This limit is based on manageability and ease of navigation in the user interface.
When you have many entries (security groups of users) in the site collection (more than one thousand), you should use Windows PowerShell to manage users instead of the UI. This will provide a better management experience.
Active Directory Principles/Users in a SharePoint group 5,000 per SharePoint group Supported SharePoint Server 2010 enables you to add users or Active Directory groups to a SharePoint group.
Having up to 5,000 users (or Active Directory groups or users) in a SharePoint group provides acceptable performance.
The activities most affected by this limit are as follows:
  • Fetching users to validate permissions. This operation takes incrementally longer with growth in number of users in a group.
  • Rendering the membership of the view. This operation will always require time.
SharePoint groups 10,000 per site collection Supported Above 10,000 groups, the time to execute operations is increased significantly. This is especially true of adding a user to an existing group, creating a new group, and rendering group views.
Security principal: size of the Security Scope 5,000 per Access Control List (ACL) Supported The size of the scope affects the data that is used for a security check calculation. This calculation occurs every time that the scope changes. There is no hard limit, but the bigger the scope, the longer the calculation takes.

Limits by feature

This section lists limits sorted by feature.

Search limits

The following table lists the recommended guidelines for Search.

 

Limit Maximum value Limit type Notes
SharePoint search service applications 20 per farm Supported Multiple SharePoint search service applications can be deployed on the same farm, because you can assign search components and databases to separate servers. The recommended limit of 20 is less than the maximum limit for all service applications in a farm.
Crawl databases and database Items 10 crawl databases per search service application

25 million items per crawl database
Threshold The crawl database stores the crawl data (time/status, etc.) about all items that have been crawled. The supported limit is 10 crawl databases per SharePoint Search service application.
The recommended limit is 25 million items per crawl database (or a total of four crawl databases per search service application).
Crawl components 16 per search service application Threshold The recommended limit per application is 16 total crawl components; with two per crawl database, and two per server, assuming the server has at least eight processors (cores).
The total number of crawl components per server must be less than 128/(total query components) to minimize propagation I/O degradation. Exceeding the recommended limit may not increase crawl performance; in fact, crawl performance may decrease based on available resources on the crawl server, database, and content host.
Index partitions 20 per search service application; 128 total Threshold The index partition holds a subset of the search service application index. The recommended limit is 20. Increasing the number of index partitions results in each partition holding a smaller subset of the index, reducing the RAM and disk space that is needed on the query server hosting the query component assigned to the index partition. The boundary for the total number of index partitions is 128.
Indexed items 100 million per search service application; 10 million per index partition Supported SharePoint Search supports index partitions, each of which contains a subset of the search index. The recommended maximum is 10 million items in any partition. The overall recommended maximum number of items (e.g., people, list items, documents, Web pages) is 100 million.
Crawl log entries 100 million per search application Supported This is the number of individual log entries in the crawl log. It will follow the "Indexed items" limit.
Property databases 10 per search service application;128 total Threshold The property database stores the metadata for items in each index partition associated with it. An index partition can only be associated with one property store. The recommended limit is 10 property databases per search service application. The boundary for index partitions is 128.
Query components 128 per search application; 64/(total crawl components) per server Threshold The total number of query components is limited by the ability of the crawl components to copy files. The maximum number of query components per server is limited by the ability of the query components to absorb files propagated from crawl components.
Scope rules 100 scope rules per scope; 600 total per search service application Threshold Exceeding this limit will reduce crawl freshness, and delay potential results from scoped queries.
Scopes 200 site scopes and 200 shared scopes per search service application Threshold Exceeding this limit may reduce crawl efficiency and, if the scopes are added to the display group, affect end-user browser latency. Also, display of the scopes in the search administration interface degrades as the number of scopes passes the recommended limit.
Display groups 25 per site Threshold Display groups are used for a grouped display of scopes through the user interface. Exceeding this limit starts degrading the scope experience in the search administration interface.
Alerts 1,000,000 per search application Supported This is the tested limit.
Content sources 50 per search service application Threshold The recommended limit of 50 can be exceeded up to the boundary of 500 per search service application. However, fewer start addresses should be used, and the concurrent crawl limit must be followed.
Start addresses 100 per content source Threshold The recommended limit can be exceeded up to the boundary of 500 per content source. However, the more start addresses you have, the fewer content sources should be used. When you have many start address, we recommend that you put them as links on an html page, and have the HTTP crawler crawl the page, following the links.
Concurrent crawls 20 per search application Threshold This is the number of crawls underway at the same time. Exceeding this number may cause the overall crawl rate to decrease.
Crawled properties 500,000 per search application Supported These are properties that are discovered during a crawl.
Crawl impact rule 100 Threshold Recommended limit of 100 per farm. The recommendation can be exceeded; however, display of the site hit rules in the search administration interface is degraded. At approximately 2,000 site hit rules, the Manage Site Hit Rules page becomes unreadable.
Crawl rules 100 per search service application Threshold This value can be exceeded; however, display of the crawl rules in the search administration interface is degraded.
Managed properties 100,000 per search service application Threshold These are properties used by the search system in queries. Crawled properties are mapped to managed properties.
Mappings 100 per managed property Threshold Exceeding this limit may decrease crawl speed and query performance.
URL removals 100 removals per operation Supported This is the maximum recommended number of URLs that should be removed from the system in one operation.
Authoritative pages 1 top level and minimal second and third level pages per search service application Threshold The recommended limit is one top-level authoritative page, and as few second -and third-level pages as possible to achieve the desired relevance.
The boundary is 200 per relevance level per search application, but adding additional pages may not achieve the desired relevance. Add the key site to the first relevance level. Add more key sites at either second or third relevance levels, one at a time, and evaluate relevance after each addition to ensure that the desired relevance effect is achieved.
Keywords 200 per site collection Supported The recommended limit can be exceeded up to the maximum (ASP.NET-imposed) limit of 5,000 per site collection given five Best Bets per keyword. If you exceed this limit, display of keywords on the site administration user interface will degrade. The ASP.NET-imposed limit can be modified by editing the Web.Config and Client.config files (MaxItemsInObjectGraph).
Metadata properties recognized 10,000 per item crawled Boundary This is the number of metadata properties that can be determined and potentially mapped or used for queries when an item is crawled.

User Profile Service limits

The following table lists the recommended guidelines for User Profile Service.

 

Limit Maximum value Limit type Notes
User profiles 2,000,000 per service application Supported A user profile service application can support up to 2 million user profiles with full social features functionality. This number represents the number of profiles that can be imported into the people profile store from a directory service, and also the number of profiles a user profile service application can support without leading to performance decreases in social features.
Social tags, notes and ratings 500,000,000 per social database Supported Up to 500 million total social tags, notes and ratings are supported in a social database without significant decreases in performance. However, database maintenance operations such as backup and restore may show decreased performance at that point.

Content deployment limits

The following table lists the recommended guidelines for content deployment.

 

Limit Maximum value Limit type Notes
Content deployment jobs running on different paths 20 Supported For concurrently running jobs on paths that are connected to site collections in the same source content database, there is an increased risk of deadlocks on the database. For jobs that must run concurrently, we recommend that you move the site collections into different source content databases.
note Note:
Concurrent running jobs on the same path are not possible.

If you are using SQL Server snapshots for content deployment, each path creates a snapshot. This increases the I/O requirements for the source database.
For more information, see About deployment paths and jobs11.

Blog limits

The following table lists the recommended guidelines for blogs.

 

Limit Maximum value Limit type Notes
Blog posts 5,000 per site Supported The maximum number of blog posts is 5,000 per site.
Comments 1,000 per post Supported The maximum number of comments is 1,000 per post.

Business Connectivity Services limits

The following table lists the recommended guidelines for Business Connectivity Services.

 

Limit Maximum value Limit type Notes
ECT (in-memory) 5,000 per Web server (per tenant) Boundary Total number of external content type (ECT) definitions loaded in memory at a given point in time on a Web server.
External system connections 500 per Web server Boundary Number of active/open external system connections at a given point in time. The default maximum value is 200; the boundary is 500. This limit is enforced at the Web Server scope, regardless of the kind of external system (for example, database, .NET assembly, and so on) The default maximum is used to restrict the number of connections. An application can specify a larger limit via execution context; the boundary enforces the maximum even for applications that do not respect the default.
Database items returned per request 2,000 per database connector Threshold Number of items per request the database connector can return.
The default maximum of 2,000 is used by the database connector to restrict the number of result that can be returned per page. The application can specify a larger limit via execution context; the Absolute Max enforces the maximum even for applications that do not respect the default. The boundary for this limit is 1,000,000.

Workflow limits

The following table lists the recommended guidelines for workflow.

 

Limit Maximum value Limit type Notes
Workflow postpone threshold 15 Threshold 15 is the maximum number of workflows allowed to be executing against a content database at the same time, excluding instances that are running in the timer service. When this threshold is reached, new requests to activate workflows will be queued to be run by the workflow timer service later. As non-timer execution is completed, new requests will count against this threshold. This is limit can be configured by using the Set-SPFarmConfig Windows PowerShell cmdlet. For more information, see Set-SPFarmConfig12.
Note: This limit does not refer to the total number of workflow instances that can be in progress. Instead, it is the number of instances that are being processed. Increasing this limit increases the throughput of starting and completing workflow tasks but also increases load against the content database and system resources.
Workflow timer batch size 100 Threshold The number of events that each run of the workflow timer job will pick up and deliver to workflows. It is configurable by using Windows PowerShell. To allow for additional events, you can run additional instances of the Microsoft SharePoint Foundation Workflow Timer Service.

Managed Metadata term store (database) limits

The following table lists the recommended guidelines for managed metadata term stores.

 

Limit Maximum value Limit type Notes
Maximum number of levels of nested terms in a term store 7 Supported Terms in a term set can be represented hierarchically.  A term set can have up to seven levels of terms (a parent term, and six levels of nesting below it.)
Maximum number of term sets in a term store 1,000 Supported You can have up to 1,000 term sets in a term store.
Maximum number of terms in a term set 30,000 Supported 30,000 is the maximum number of terms in a term set.
note Note:
Additional labels for the same term, such as synonyms and translations, do not count as separate terms.

Total number of items in a term store 1,000,000 Supported An item is either a term or a term set. The sum of the number of terms and term sets cannot exceed 1,000,000. Additional labels for the same term, such as synonyms and translations, do not count as separate terms.
note Note:
You cannot have both the maximum number of term sets and the maximum number of terms simultaneously in a term store.


Visio Services limits

The following table lists the recommended guidelines for instances of Visio Services in Microsoft SharePoint Server 2010.

 

Limit Maximum value Limit type Notes
File size of Visio Web drawings 50 MB Threshold Visio Services has a configuration setting that enables the administrator to change the maximum size of Web drawings that Visio processes.
Larger file sizes have the following side effects:
  • Increase in the memory footprint of Visio Services.
  • Increase in CPU usage.
  • Reduction in application server requests per second.
  • Increase overall latency.
  • Increase SharePoint farm network load
Visio Web drawing recalculation time-out 120 seconds Threshold Visio Services has a configuration setting that enables the administrator to change the maximum time that it can spend recalculating a drawing after a data refresh.

A larger recalculation time-out leads to:
  • Reduction in CPU and memory availability.
  • Reduction in application requests per second.
  • Increase in average latency across all documents.
A smaller recalculation time-out leads to:
  • Reduction of the complexity of diagrams that can be displayed.
  • Increase in requests per second.
  • Decrease in average latency across all documents.
Visio Services minimum cache age (data connected diagrams) Minimum cache age: 0 to 24hrs Threshold Minimum cache age applies to data connected diagrams. It determines the earliest point at which the current diagram can be removed from cache.
Setting Min Cache Age to a very low value will reduce throughput and increase latency, because invalidating the cache too often forces Visio to recalculate often and reduces CPU and memory availability.

Visio Services maximum cache age (non-data connected diagrams) Maximum cache age: 0 to 24hrs Threshold Maximum cache age applies to non-data connected diagrams. This value determines how long to keep the current diagram in memory.

Increasing Max Cache Age decreases latency for commonly requested drawings.
However, setting Max Cache Age to a very high value increases latency and slows throughput for items that are not cached, because the items already in cache consume and reduce available memory.


SharePoint Web Analytics service limits

The following table lists the recommended guidelines for the SharePoint Web Analytics service.

 

Limit Maximum value Limit type Notes
SharePoint entities 30,000 per farm when Web Analytics is enabled Supported Do not enable Web Analytics if your farm contains, or is expected to contain, more than 30,000 SharePoint entities, which include all Web applications, site collections, and sites. This number is not exact, because different combinations of SharePoint entities might have a greater or lesser effect on farm performance than the tested scenario, which is described in the article Capacity requirements for the Web Analytics Shared Service in SharePoint Server 201013. However, as the number of SharePoint entities in your farm closely approaches this limit, farm performance might fall to unacceptable levels.
For more information about boundaries and limits for the SharePoint Web Analytics service, see Capacity requirements for the Web Analytics Shared Service in SharePoint Server 201013.

PerformancePoint Services limits

The following table lists the recommended guidelines for PerformancePoint Services in Microsoft SharePoint Server 2010.

 

Limit Maximum value Limit type Notes
Cells 1,000,000 per query on Excel Services data source Boundary A PerformancePoint scorecard that calls an Excel Services data source is subject to a limit of no more than 1,000,000 cells per query.
Columns and rows 15 columns by 60,000 rows Threshold The maximum number of columns and rows when rendering any PerformancePoint dashboard object that uses a Microsoft Excel workbook as a data source. The number of rows could change based on the number of columns.
Query on a SharePoint list 15 columns by 5,000 rows Supported The maximum number of columns and row when rendering any PerformancePoint dashboard object that uses a SharePoint list as a data source. The number of rows could change based on the number of columns.
Query on a SQL Server data source 15 columns by 20,000 rows Supported The maximum number of columns and row when rendering any PerformancePoint dashboard object that uses a SQL Server table data source. The number of rows could change based on the number of columns.

Word Automation Services limits

The following table lists the recommended guidelines for Word Automation Services.

 

Limit Maximum value Limit type Notes
Input file Size 512 MB Boundary Maximum file size that can be processed by Word Automation Services.
Frequency with which to start conversions (minutes) 1 minute (recommended)
15 minutes (default)
59 minutes (boundary)
Threshold This setting determines how often the Word Automation Services timer job executes. A lower number leads to the timer job running faster. Our testing shows that it is most useful to run this timer job once per minute.
Number of conversions to start per conversion process For PDF/XPS output formats: 30 x MFor all other output formats: 72 x M Where M is the value of Frequency with which to start conversions (minutes) Threshold The number of conversions to start affects the throughput of Word Automation Services.
If these values are set higher than the recommended levels then some conversion items may start to fail intermittently and user permissions may expire. User permissions expire 24 hours from the time that a conversion job is started.
Conversion job size 100,000 conversion items Supported A conversion job includes one or more conversion items, each of which represents a single conversion to be performed on a single input file in SharePoint. When a conversion job is started (using the ConversionJob.Start method), the conversion job and all conversion items are transmitted over to an application server which then stores the job in the Word Automation Services database. A large number of conversion items will increase both the execution time of the Start method and the number of bytes transmitted to the application server.
Total active conversion processes N-1, where N is the number of cores on each application server

Threshold An active conversion process can consume a single processing core. Therefore, customers should not run more conversion processes than they have processing cores in their application servers.  The conversion timer job and other SharePoint activities also require occasional use of a processing core.
We recommend that you always leave 1 core free for use by the conversion timer job and SharePoint.
Word Automation Services database size 2 million conversion items Supported Word Automation Services maintains a persistent queue of conversion items in its database. Each conversion request generates one or more records.
Word Automation Services does not delete records from the database automatically, so the database can grow indefinitely without maintenance. Administrators can manually remove conversion job history by using the Windows PowerShell cmdlet Remove-SPWordConversionServiceJobHistory. For more information, see Remove-SPWordConversionServiceJobHistory14.

SharePoint Workspace limits

The following table lists the recommended guidelines for Microsoft SharePoint Workspace 2010.

 

Limit Maximum value Limit type Notes
SharePoint Workspace synchronization 30,000 items per list Boundary SharePoint Workspace will not synchronize lists that have more than 30,000 items. This restriction exists because the time to download a list that has more than 30,000 items is very long, and resource usage is high.
SharePoint Workspace synchronization 1800 documents limit in SharePoint Workspace Boundary Users are warned when they have more than 500 documents in SharePoint Workspace, but they can continue to add documents.

OneNote limits

The following table lists the recommended guidelines for Microsoft OneNote Services.

 

Limit Maximum value Limit type Notes
Number of Sections and Section Groups in a OneNote Notebook (on SharePoint) See limit for "Documents" in List and library limits
Each section counts as one folder and one document in the list. Each section group counts as one folder and one document in the list.
Maximum size of a section See limit for "File size" in List and library limits This maximum excludes any images, embedded files, and XPS printouts to OneNote that are larger than 100 KB. Images and embedded files larger than 100 KB are split out into their own binary files. This means that a section with 100 KB of typed data and four embedded Word documents of 1 MB each will be considered a 100 KB section.
Maximum size of an image, embedded file, and XPS OneNote printout in a OneNote section. See limit for "File size" in List and library limits
Each item is stored as a separate binary file and is therefore subject to file size limits. Each print operation to OneNote will result in one XPS printout binary, even if the printout contains multiple pages.
Maximum size of all images, embedded files, and XPS printouts in a single OneNote page. Default limit is double the "File size" limit. Threshold This applies to embedded content in a single OneNote page, not a Section or Notebook. If users encounter this, they will see the following error in OneNote: jerrcStorageUrl_HotTableFull (0xE0000794). Users can work around this by splitting embedded content into different pages and deleting previous versions of the page. If users have to adjust this value (“Max Hot Table Size”), the effective limit is half of the absolute value they define (for example, specifying a 400 MB max hot table size means that the maximum size of all embedded content on a page is limited to 200 MB).
Merge operations One per CPU core per Web server Boundary OneNote merges combine changes from multiple users who are co-authoring a notebook. If no CPU core is available to run a merge, a conflict page is generated instead, which forces the user perform the merge manually).
This limit applies whether OneNote is running as a client application or as a Microsoft Office Web Apps.

Office Web Application Service limits

The following table lists the recommended guidelines for Office Web Apps. Office client application limits also apply when an application is running as a Web app.

 

Limit Maximum value Limit type Notes
Cache size 100 GB Threshold Space available to render documents, created as part of a content database. By default, the cache available to render documents is 100 GB. We do not recommend that you increase the available cache.
Renders One per document per second per CPU core per application server (maximum eight cores) Boundary This is the measured average number of renders that can be performed of "typical" documents on the application server over a period of time.

Project Server limits

The following table lists the recommended guidelines for Microsoft Project Server. For more information about how to plan for Project Server, see Planning and architecture for Project Server 201015.

 

Limit Maximum value Limit type Notes
End of project time Date: 12/31/2049 Boundary Project plans cannot extend past the date 12/31/2049.
Deliverables per project plan 1,500 deliverables Boundary Project plans cannot contain more than 1,500 deliverables.
Number of fields in a view 256 Boundary A user cannot have more than 256 fields added to a view that they have defined in Project Web App.
Number of clauses in a filter for a view 50 Boundary A user cannot add a filter to a view that has more than 50 clauses in it.
















ViewFieldsOnly Property while using SpQuery in SharePoint 2010

It allows you to return the items which you have asked in ViewFields Property of SpQuery which allows you to increase performance while returning the data from SharePoint list. We don't have this in SharePoint 2007 SpQuery.

ThresHolds in SharePoint

Configurable limits that can be exceeded to accommodate specific requirements.

Asp.Net WebPart Vs SharePoint WebPart

As you might have guessed already, WSS 3.0 is implemented on top of ASP.NET 2.0. SharePoint Web Applications are nothing more than ASP.NET 2.0 sites with some modifications under the hood. In addition, the new SharePoint web part framework extends the ASP.NET 2.0 web part framework. That offers great flexibility since ASP.NET developers are now even closer to the SharePoint development platform. A large number of posts recommend the use of the ASP.NET WebPart class instead of the WSS WebPart class. Some of them actually suggest that the web part framework in WSS is there just for backwards-compatibility and should be avoided. In my personal opinion, I support the use of the WSS class for SharePoint web parts, and the use of the ASP.NET class for ASP.NET web parts. There is a fuzzy line though between them since the first inherits from the second. I am not totally against ASP.NET web parts in WSS but I believe they should be avoided as your web parts become more sophisticated.
Let us consider the scenario where you need to develop a web part that displays information from your backend system. Probably you will need the same web part in ASP.NET and WSS so I cannot see why the ASP.NET web part framework should not be used. There is no need for any services provided by SharePoint besides the hosting of the web part itself. Now you also have the need for resources such as images, style sheets and other supporting files. This is the point where trouble arises. SharePoint will deploy your web part resources in a special folder called "wpresources" under the root of the web application(s) you have your web parts deployed. This special folder holds all the resource files required by the web parts deployed to the web application. Each assembly gets a dedicated subfolder under the "wpresources" folder containing its own resource files. The name of that subfolder will correspond to the assembly name and in case the same assembly is deployed more than once (different versions in the GAC perhaps) the subfolder name might include version and public key. How will you "calculate" the path to your resources in ASP.NET? I can only wish you luck in that scenario but in the case of the WSS WebPart class, you have a very powerful method called ReplaceTokens. ReplaceTokens accepts one string parameter and returns almost the very same string with the difference that it processes some specific tokens within the parameter and replaces them with SharePoint specific values. For example:
ReplaceTokens("Hello, _LogonUser_") will replace "_LogonUser_" with the username of the current visitor.
Here is a list of other tokens:
Token Value
_WPR_ Gets the base path to Web Part class resources
_WPQ_ Gets a unique identifier for a Web Part
_LogonUser_ Gets the Request.ServerVariables( "LOGON_USER" )
_WPID_ ID Property
_WebLocaleId_ The LCID of the Web site
_WPSRR_ Gets the server-relative path to Web Part class resources
 
That should make your life easier since it can return the resources folder for your web part. Let us move on to the scenario where you also need to create a document library at the site where your web part is loaded and in that document library, you need to save a daily report from your backend system. Thinks start to look grim again for the ASP.NET option since it cannot "talk" to SharePoint directly. You can reference Microsoft.SharePoint.dll or any other required assembly but that will be sacrificing the deploy-outside-SharePoint requirement. In this requirement is apparent that you need to separate your ASP.NET web parts from the WSS web parts.
Another good example to show that the WSS web part framework is not here just for your old web parts will be privilege elevation. You have a web part that does some background operations that require administrative access. You can’t give administrative rights to everyone, so what will you do? You can go down the same path as SharePoint developers used to go in WSS 2.0: impersonate another identity. That sounds great! Solution found! To implement it you will need to call unmanaged API and provide a username and password with credentials. Now I have seen many of this web parts and people have passed passwords through web part properties, in a file on the server or web.config itself. The next concern is exposure of the administrative credentials so you might want to encrypt them in a file and soon you realise you have added more components to your solution than you expected in the first place without even discussing any implications of calling unmanaged API. However, the WSS web part framework comes to the rescue; you can execute code with full rights using this simple code:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// your elevated code here
});
Again, that is as simple as "ABC" to implement and largely reduces the amount of code you need to write and test, not to mention that this is a more secure option with no credentials needed in the immediate code.
These are few of the benefits and weaknesses of the WSS web part framework over ASP.NET web part framework. Clearly, the WSS framework is not here for backwards compatibility only, but also to provide features specific to SharePoint and development around it.