| Introduction Performance monitoring helps organizations identify performance bottlenecks of the current environment and identify the right time to scale out the SharePoint server farm. I will be looking at what are the critical performance counters in a SharePoint Portal environment and how to monitor them. This article includes information regarding analyze logs information to determine the best scale out options for SharePoint server farm. Organizations can use the Microsoft Windows Server 2003 System Monitor, Performance Logs and Alerts to monitor the counters described in this article. Monitoring performance regularly, organizations can recognize trends as they develop and prevent performance problems. This will also help to decide when to upgrade the hardware and whether upgrades are improving the server's performance. General Server Performance Counters Following is a list of general performance counters that should be monitored for all SharePoint Portal Server based servers. | Performance Object | Counter | Threshold | Description | | Processor | Percent processor time_total | 80 to 85 percent averaged over three intervals | The total percentage of processor usage for a server. | | Network interface | Bytes total per second_network interface | 50 percent of the available network interface bandwidth -- for example, a 100-MB network interface running at 50,000 KB per second | The rate at which bytes are sent and received over each network adapter. | | Logical disk | Percent idle time_ (drives C:,D:, and so on) | 20 percent over idle time_. | Reports the percentage of time during the sample interval that the disk was idle. If this value is very low, the logical disk is very busy. | | Paging file | Percent usage | Above 70 percent | Review this value in conjunction with memory -- available megabytes and page faults per second -- to understand paging activity on the server. | | Memory | Available MBs | 128 MB -- assuming 2 GB of RAM as prescribed on servers | The amount of physical memory, in MBs, immediately available for allocation to a process or for system use on the server. | | Memory | Page faults per second | 20 | A high rate of page faults indicates a lack of physical memory. | | System | Processor queue length | The number of CPUs + 1 | Exceeding the threshold indicates that the processors are not fast. | | ASP.NET applications | Requests per second_total | Through ongoing monitoring, trends begin to emerge that equate requests per second with CPU consumption | The number of requests executed per second; this roughly equates to the number of HTTP pages per second. |
Table 1: General Windows Server 2003 Performance Counters
SharePoint Portal Server Counters A SharePoint Portal Server supports many topologies that allow organizations to set up different server farm environments from small server farms to larger load balance server farm environments according to an organization's requirements. This will introduce various numbers of Web Servers, Search Server and Index Servers in to the SharePoint farm environment. Some server farms can contain more than one SharePoint component bundled up together. For example, Web and Search components together in a single server. The following table contains a list of performance counters that are relevant for all of the SharePoint components. | Object | Counter | Threshold | Description | | Processor | Percent processor time_total | 80 to 85 percent averaged over three intervals | The total percentage of processor usage for a server. | | ASP.NET applications | Requests per second_total | Through ongoing monitoring, trends begin to emerge that equate requests per second with CPU consumption | The number of requests executed per second; this roughly equates to the number of HTTP pages per second. | | Web service | Get requests per second_total, individual portal, or IIS Virtual root | Through ongoing monitoring, trends begin to emerge that equate get requests per second with CPU consumption | Generally speaking, this is the rate at which clients are requesting information from the front-end Web servers. | | Search | Query rate | 10 per second | The number of queries posted to the server per second; keep in mind that in the medium server farm configuration, the front-end servers are doing much more than searching. | | Search | Succeeded queries | This counter should be used mostly for troubleshooting search problems | The number of queries that produce successful searches. Monitor this counter along with the failed queries counter if you need to troubleshoot search problems. | | Search catalogs | Number of documents | Microsoft has tested up to 5 million documents per content index | The total number of documents in the catalog. | | Search catalogs | Queries rate_(index names or all instances) | Indicates which catalogues are searched most often by users | The number of queries posted to indexes per second; in conjunction with other performance data, this can help determine if your index configuration can be optimized. |
Table 2: SharePoint Portal Server Performance counters Front End Web Servers in a Server Farm The Processor, ASP.NET application and Web Service performance objects determine when to add a new dedicated Front End Web server
to the farm environment. When above three performance objects counters continuously approach or exceed any of the thresholds;
organizations should consider adding additional Front End Web servers to the server farm. At the same time make sure you check
the general counters in Table 1 to better understand the Windows Server 2003 server performance. The "percent processor time" counter is the main indicator of Front End Web server performance. The organization
should gather this information every 15 minutes to determine the health of the Front End Web server. If the organization is
having high performance expectations, this counter should record a lower average threshold. Having a heavily used Windows SharePoint Services Site can add extensive performance impact on Front End Web servers.
Organizations should identify these kinds of WSS sites and consider scaling out one or more those sites to a separate
server farm to reduce the performance impact on Front End Web servers. Front End Web / Search Servers in a Server Farm Table 2 lists the important performance counter for a Front End Web server with SharePoint Search component in a server farm.
If the "search catalog" size exceeds 5 million, Microsoft recommends adding an additional Front End / Searching server
to the server farm or separating the indexing by moving the Indexing server to a dedicated Indexing server. This will reduce the
propagation and crawling time. The amount of CPU time taken for the search operations is another key factor of monitoring the health of the server farm.
When the "query rate" counter exceeds the recommended threshold and search operations consumes more than 40 to
50 percent of the overall server capacity, organizations should consider scaling out toward a Larger Server Farm. If percent
processor time is exceeding the threshold but the query rate is below the threshold and front end web traffic is bringing the
server to its maximum capacity, the organization should consider adding an additional Front End Web/Search server to the Server Farm. Index Servers The main performance thresholds for index servers are 80 to 85 percent processor time and 85 percent memory availability. Adding additional indexing servers to a farm environment is not totally done looking at performance counters. It is more determined by the function of indexing and propagation time. When it take few hours for an incremental crawl and propagation, and the organization needs this to be done in half hour, consider adding another indexing server. Performance of an indexing server also depends on the location of the crawled content and the processing power of the indexing server. Crawl time may depend on content location, network performance, type of documents in the index, frequency and type of content index updates. Microsoft recommends no more than four index servers per large server farm. Microsoft SQL Server The present processor time counter is the leading indicator for Microsoft SQL Server performance. Examine percent processor time in conjunction with overall memory capacity, network traffic and input/output subsystem capacity will provide an accurate health report on your dedicated SQL Server on the SharePoint farm.
Using Performance Monitor on Windows 2003 Server The System Monitor interface can be invoked by clicking Start -> Run and typing "perfmon"
or by clicking Start -> Administrative Tools -> Performance and selecting System Monitor. The system monitor can display in tree formats including graph, histogram and text report.  Figure 1: System Monitor
Adding Performance Counters - Right click the counter pane and select Add Counter
- Select the option whether you are monitoring the local computer counters by selecting Use local computer counter option or another remote computer by selecting Select counter from computer option by providing the UNC path for the remote computer
- Select the object of interest from the Performance object drop down list
- Select the counter according to the selected performance object
- Click Add to add it in the System monitor
- Click Explain button if you need more details about the counter
 Figure 2: Add Counter window
The administrators can subscribe to receive alerts when the performance counters threshold exceeds the limit. This will provide the flexibility of not having to physically be in front of a server to monitor the performance. Please refer to Help and Support section on Windows Server 2003 Start menu for more information regarding System Monitor and how to use it.
Logs Monitoring system performance in conjunction with IIS logs and SPS Usage Analysis logs provides more in depth information regarding organization portal environment being used. The performance counters provide the information regarding the resource consumption on a per-server basis. The logs provide in depth web traffic analysis data, such as which sites that are most heavily used and by whom, number of visitors to the site and peak period of activity. Internet Information Services (IIS) Logs IIS logs include detailed information such as who has visited sites and what was viewed, in terms of total visits, page views and trends over time. Careful analysis of IIS logging data will help organizations to discover how much traffic is going to portal sites, how much is going to WSS sites and search operations. It will also help organizations to identify bottlenecks and performance issues. Most importantly this will help to identify the most used Windows SharePoint Services Sites in the portal and its impact on the Front End Web server. According to this information, organizations can decide when to move one or more site collections to a dedicated Windows SharePoint Services server farm to reduce the performance impact on the Front End Web server. Setting Up IIS Log Files Set up logs files to be created daily for each virtual server. It is good practice to locate these logs separate from the drive that holds the operating system data. The local administrators group and the IIS_WPG group should have access to the log file directory. IIS logging is enabled by default for each virtual server. The user can check whether IIS logging is enabled by following these steps. The recommended log file format for IIS logs is the W3C format. This is the default log file format and enables you to select the fields you want to include in the log file. By limiting the number of fields you can simplify the process of identifying the data and save server resources, CPU usage. User can follow these steps to select the logging properties for their virtual server. IIS logs files can also be logged in a database that complies with Open Database Connectivity (ODBC), such as Microsoft SQL Server database as displayed in figure 6.  Figure 6: ODBC Logging option for IIS Logs
 Figure 7: ODBC Logging Properties window
The information being logged to the SQL Server then can be reviewed by generating reports using the SQL Server Query Analyser.
Conclusion Organizations can use the Windows 2003 System Monitor, Performance logs and alerts to monitor their SharePoint Portal Server environment. The performance counter details were taken from Microsoft SharePoint Products and Technologies Resource Kit.
About the Author Gayan Peiris is a Technical Architect for Unique World Pty Ltd (www.uniqueworld.net)
in Canberra, Australia. He is a MCSD with MCAD, MCP, Bcom and MIT certifications. Gayan has designed and developed Microsoft
Web and Windows solutions since 1999. His expertise lies in developing scalable, high-performance applications with Microsoft
Enterprise Server Products in .NET technology .His core skills are ADO.NET, ASP.NET, C#, VB.NET, Web Services, XML, MS SharePoint
Portals, MS Content Management Server, MS Project Server, Live Communication Server, DNA and SQL Server. www.gayanpeiris.com
|