As an administrator you are required to monitor performance issues with SharePoint Products and Technologies, SQL Server, Internet Information Services, Windows Server 2003, and the hardware on which they run. The complexity of the interaction between these systems can be daunting, but experience has shown that with careful, selective monitoring their actions can be understood and optimized. Use the following guidelines to help you identify the critical performance metrics for your installation.
Before you can analyze the performance of a system, you must develop its normal operational profile; before you can develop this profile, the system must be baselined. After you have a fully functional environment, you should start recording performance logs of your systems for at least 48 hours once a month. Many organizations already use Microsoft Operations Manager or a third-party tool that provides this functionality. It is imperative to record system performance in both peak and non-peak hours. Baseline information is indispensable when analyzing performance issues.
After determining the type of monitoring you require, you must define which elements need to be monitored. Several performance counters are invaluable in troubleshooting your environment. Select only those counters that are likely to be useful, because as the number of counters grows it becomes increasingly difficult to interpret their results.
Counters are referred to in the following way: Object\Counter\Instance.
The types of counters that are salient to SharePoint Products and Technologies and the types of data that can be gathered from them are presented in this section.
Processor Monitors both individual and combined values for CPUs.
Memory Reports the details of the system's physical RAM.
Disk Returns details of both physical and logical disk information.
Network Returns details of the network hardware and protocol information.
WSS Gathers data on the core of the SharePoint Server.
OSS Reports on SharePoint Server functions, such as search and indexing.
SQL Monitors the database engine supporting SharePoint Products and Technologies.
Several specific counters are crucial when evaluating system performance issues. A description of the types of information they return and of the types of issues each can help resolve is presented next.
Processor\% Processor Time\_Total Records current CPU utilization, which can be used to determine if a system is in need of additional processor capacity.
System\Processor Queue Length\(N/A) Logs the number of items waiting to be processed by the CPU(s). Values higher than 2 mean you should consider adding more or faster processors.
Processor\Interrupts\Sec Records the number of times that processing must stop to handle a hardware request for disk or memory I/O. Values in excess of 1,000 may indicate a hardware issue.
Memory\Pages/sec\(N\A) Monitors how much data are written to or read from memory. Values above 200 could mean the system is spending too much time writing out to disk or what is called a hard page fault. Consider increasing the amount of RAM.
Memory\Pages Faults/sec\(N\A) Records the number of times that a piece of data cannot be found in memory. Large numbers of page faults, defined as the number of drives multiplied by 4,096, mean that additional memory needs to be installed.
Memory\Available Mbytes\(N\A) Monitors the amount of memory available to the system in megabytes. If this number is consistently below 10% of your total physical memory, consider adding RAM.
Memory\Pool Nonpaged Bytes\(N\A) Logs the amount of data that cannot be paged to disk. In many cases, there is little you can do to change this behavior. Certain processes, such as Internet Information Services (Inetinfo.exe), SharePoint Services Timer (Owstimer.exe), and SharePoint Server Search (Mssearch.exe), use this type of memory. To ensure proper performance, confirm that there is sufficient available physical memory.
If there is less than 10% available of nonpaged bytes, IIS will stop serving pages. To resolve this problem, perform an IISReset.exe from the command line.
PhysicalDisk\% Disk Time\DriveLetter Logs the amount of time the disk is active during the previous monitoring period. Values higher than 80% should be investigated as they may indicate possible hard drive controller or insufficient memory problems.
PhysicalDisk\Current Disk Queue Length\DriveLetter Records the number of items waiting to be written or read from the disk. A value higher than 2 means either there is disk subsystem problem, such as a bad controller, or more likely that a disk upgrade is needed. There are three ways to upgrade the disk subsystem: add newer faster spinning drives, upgrade to a better controller, or add disks, such as a Redundant Array of Independent Disks (RAID) 5 or 10 set, which can improve read performance.
RAID 5 sets are made up of three or more disks, which provide protection from a single drive failure and give better read performance with a very slight impact on write performance. RAID 10 sets are made up of four or more disks and give better read performance with no impact on write performance. RAID 10 is also able to handle two drive failures without data loss. More RAID information can be found be found at http://support.microsoft.com/kb/100110/en-us and http://support.microsoft.com/kb/170921/en-us.
Most counters involving SharePoint Products and Technologies are helper indicators. In other words, they help you understand how your environment is performing.
Without baselining it can be difficult and sometimes impossible to interpret the meaning of SharePoint Server specific counters. The following are commonly used counters when monitoring SharePoint Server:
SharePoint Search Gatherer\Document Entries Displays the number of documents being indexed at the current moment.
SharePoint Search Gatherer\Delayed Documents Logs the number of documents delayed from indexing. The value of this counter is dependent on the site hit frequency rules. This means that modifications to your site rules can affect this counter in real time.
SharePoint Search Gatherer\Documents Filtered Records the total number of documents that have been attempted to be filtered since the search service was last started. Another way to think of this value is the number of filter objects created. This value can help you assess the performance of your searches. When baselining your system, pay attention to this counter. Remember that the value of this counter is reset if the search service is restarted for any reason.
SharePoint Search Gatherer\Documents Filtered Rate Records the rate per second at which documents are filtered. This is another very useful counter in helping determine relative performance of your SharePoint Server.
SharePoint Search Gatherer\Documents Successfully Filtered Logs the number of documents that were indexed successfully since the search service was last started.
SharePoint Search Gatherer\Documents Success Fully Filtered Rate Records the rate at which documents are crawled completely. This is another very valuable counter for helping determine relative performance.
SharePoint Search Gatherer\Heartbeats Logs the number of heartbeats that have occurred since the search service was last started. After the search service is started, this counter is incremented every 10 minutes. To determine whether searching is occurring, confirm that this counter is incrementing.
SharePoint Search Gatherer Projects\Processed Documents Rate Records the rate at which documents were indexed during the current crawl.
Many other counters can also be used by the System Monitor or when configuring Performance Logs And Alerts. The following list is not meant to be complete, but it is indicative of the granularity available when monitoring SharePoint Server specific processes.
Document Conversions Pending Conversions
Excel Calculation Services Active Requests
Excel Calculation Services Average Request Processing Time
Excel Calculation Services Current Size Of Memory Cache
Excel Calculation Services Sessions Per Second
Excel Services Web Front End Requests Per Second
Office Server Search Gatherer Accessing Robots.txt File
Office Server Search Gatherer Active Queue Length
Office Server Search Gatherer Processes Max
Office Server Search Gatherer Heartbeats Rate
Office Server Search Gatherer Performance Level
Office Server Search Gatherer Reason To Back Off
Office Server Search Gatherer Servers Currently Unavailable
Office Server Search Gatherer Stemmers Cached
Office Server Search Gatherer System IO Traffic Rate
Office Server Search Gatherer Threads Accessing Network
Office Server Search Indexer Catalogs Index Size
Office Server Search Indexer Catalogs Queries Failed
Office Server Search Indexer Catalogs Queries Succeeded
Office Server Search Indexer Catalogs Shadow Merge Levels
Shared Services Provider Number of Users Imported
Shared Services Provider Personal Site Latency
Shared Services Provider Personal Site Throughput
Shared Services Provider Profile Sync Content Database Process Count
Shared Services Provider Public Site Latency
Shared Services Provider Public Site Throughput
SharePoint Publishing Cache Publishing Hits/Sec
SharePoint Publishing Cache Total Number Of Objects Added
SharePoint Publishing Editing Mode Edit Sessions Opened/Second
IIS provides very detailed logging in the form of text files that are found at C:\WINDOWS\system32\LogFiles by default. The location is configurable, and moving these to a different drive is a wise idea on busy WFE servers. To change the default IIS log file directory, perform the following steps.
Open IIS Manager and expand Web Sites.
Right-click on the Web application you want to configure and select Properties.
Select the Web Site tab, as shown in Figure 15-4.
Click on the Properties button to view or change the log file directory.
Figure 15-4: Select Enable Logging and click the Properties tab to view or change the log file location.
If you do not move the default location, the system could be rendered unusable should the log files consume all available disk space. A full explanation of configuring IIS log files is beyond the scope of this book.
For more information on configuring IIS Logging, download and install the IIS 6.0 Resource kit. It can be found at http://www.microsoft.com/downloads by searching for Iis60rkt.exe.