What is Required For SharePoint Performance Tuning

For tuning SharePoint performance a good knowledge of multiple Microsoft products is required like:

  • Microsoft SQL Server
  • Microsoft IIS
  • .Net 4.x
  • Microsoft SharePoint

Microsoft SQL Server: A DBA level knowledge is required for a person tuning SharePoint databases. Typically for performance issues/performance tuning at the database level the DBA needs to check the IOPS (input/output operations per second) on content databases. IOPS requirements for content databases can vary significantly based on:

  • How the SharePoint environment is being used: enabled features, enabled service applications (particularly Search Service Application)
  • What is the available disk space
  • The number of servers deployed in each of the tiers

Then there are other factors such as temp DB size, backup and storage configurations, details on how the underlying network storage is configured and so on. It is necessary for a person tuning SharePoint DB to know how to use the SQL Server Profiler tool for gathering critical performance related information.

Microsoft IIS: This is often an overlooked area when looking for performance issues. A good level of IIS working is required, particularly on:
  • Application Pools: These control the operation of the worker process. It is important to know the settings of these in each of the four sections of recycling, performance, health and identity. In case the performance issue is during a specific period, we need to check if the application pool for some services is being recycled in that period.
  •  IIS Logs: IIS Logs may also be required when SharePoint logs and event viewer logs are insufficient.

.Net 4.x: A good knowledge of .Net is required wherever customizations are done using Visual Studio code. Knowledge of the Visual Studio performance analyser and debugging .Net code is required.

 Microsoft SharePoint: You need to know your way around in the SharePoint Central Administration Site for finding various aspects of the farm, site collection and sites. For SharePoint performance particularly you need to know:
  • Diagnostics Logs: Location of these logs. The diagnostics logs are difficult to read and analyse in their raw form because they can contain very detailed data. To interpret these logs you can use the ULSViewer tool that can filter, compare and analyse log files. You can find the tool at http://archive.msdn.microsoft.com/ULSViewer.
  • SharePoint Health Analyzer: This runs regular automated checks on the configuration of the SharePoint farm. To tune performance one needs to understand the rules, the output of the reports, the severity of the mistakes this reports generates.
  • SharePoint Configurations: There are multiple configurations that need to be looked into from a performance perspective, including auditing, recycle bins, timer jobs, policy settings and document size settings.
One non-Microsoft product that I find pretty useful for SharePoint performance tuning is Fiddler. Fiddler is a tool for observing and debugging HTTP traffic between a browser and a web server. SharePoint delivers all its content via HTTP, so Fiddler can tell a ton about how SharePoint responds to users. You can download Fiddler from http://www.fiddler2.com/fiddler2/

The performance of the system is not a one-time event. It needs to be monitored daily and any unusual spikes in memory need to be timely investigated.