• SharePoint Performance Monitoring

    This is an AS-IS post on how to setup Performance Monitoring for SharePoint Servers.

     

    1. Ensure that the instructions in http://support.microsoft.com/kb/281884 are followed. This will allow for the Process ID value to be included as part of the process monitor data that is being captured

    To enable or to disable PIDs in process names, follow these steps:

    a.  Click Start, click Run, type regedit, and then click OK.

    b.  Locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance

    c.  On the Edit menu, click New, and then click DWORD Value.

    d.  Right-click New Value #1, click Rename, and then type ProcessNameFormat to name the new value.

    e.  Right-click ProcessNameFormat, and then click Modify.

    f.  In the Data value box, type one of the following values, and then click OK:

    1: Disables PID data. This value is the default value.

    2: Enables PID data.

    g.  Exit Registry Editor.

    Important: If you enable this feature, you may be unable to monitor process-specific information by using third-party utilities or custom-made programs.

    2. The following counters will be collected on all SharePoint Servers that this is run on:

    \ASP.NET(*)\*
    \ASP.NET v2.0.50727\*
    \ASP.NET Apps v2.0.50727(*)\*
    \.NET CLR Networking(*)\*
    \.NET CLR Memory(*)\*
    \.NET CLR Exception(*)\*
    \.NET CLR Loading(*)\*
    \.NET Data Provider for SqlServer(*)\*
    \Processor(*)\*
    \Process(*)\*
    \LogicalDisk(*)\*
    \Memory\*
    \PhysicalDisk(*)\*
    \SharePoint Publishing Cache(*)\*
    \Web Service(*)\*
    \Web Service Cache\*
    \SharePoint Search Archival Plugin(*)\*
    \SharePoint Search Gatherer\*
    \SharePoint Search Gatherer Project(*)\*
    \SharePoint Search Indexer Catalogs(*)\*
    \SharePoint Search Schema Plugin(*)\* 

     

    3. Create a text file named CounterList.txt that contains the counter set detailed above.

     

    4.  From a command line, issue the following command on the index server. You will need to change the drive letters & locations so that they are appropriate for your environment. Substitute the domain\userid  and CompanyName in the appropriate section of the command below.  Please use the application pool service account credentials that SharePoint Timer Service is running under in order to ensure that we have access to the appropriate counters.

     Note: The asterik * will cause you to be prompted for the Domain\UserID account password.

     

    Running the Baseline Counters all of the time is a good idea to capture historic performance of your SharePoint servers.  If you have a performance issue you can add Incident Counters to capture more data samples.  The command should resemble the following: Baseline counters.

    Baseline Counters

     

    logman create counter CompanyName_SP_Performance_Baseline -s %COMPUTERNAME% -o c:\PerfLogs\CompanyName_SP_Performance_Baseline_%COMPUTERNAME%.blg -f bin -v mmddhhmm -cf CounterList.txt -si 00:01:00 -cnf 12:00:00 -b 4/29/2009 6:00AM -u "domain\userid" *

     

    Important: Incident counters should only be run during performance problems and are intended for troubleshooting purposes.

    Incident Counters

     

    logman create counter CompanyName_ISP_Performance_Incident -s %COMPUTERNAME% -o c:\PerfLogs\CompanyName_SP_ Performance_Incident_%COMPUTERNAME%.blg -f bin -v mmddhhmm -cf CounterList.txt -si 00:00:05 -max 500 -u "domain\userid" *

  • Tactical Performance for SharePoint and SQL - References

    SharePoint Configuration References

    Hardware and software requirements for SharePoint 2013
    http://technet.microsoft.com/en-us/library/cc262485.aspx


    SharePoint 2010 Best Practices
    http://social.technet.microsoft.com/wiki/contents/articles/8666.sharepoint-2010-best-practices.aspx?PageIndex=2

    SharePoint 2010: Tips for Dealing with Performance Issues
    http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-with-performance-issues.aspx

    Whitepaper: Database Maintenance for Microsoft SharePoint Products and Technologies
    http://go.microsoft.com/fwlink/?LinkId=111531&clcid=0x409

    How to Disable the 8.3 Name Creation on NTFS Partitions
    http://support.microsoft.com/kb/121007

    Enable High Performance power plan
    Configuring a Power Plan with Group Policy Preferences
    http://blogs.technet.com/b/grouppolicy/archive/2009/09/30/configuring-a-power-plan-with-group-policy-preferences-by-alan-burchill.aspx

    SharePoint Cache Settings
    http://technet.microsoft.com/en-us/library/cc770229.aspx
    http://technet.microsoft.com/en-us/library/cc261797.aspx
    http://msdn.microsoft.com/en-us/library/ff647588.aspx
    http://office.microsoft.com/en-us/sharepoint-server-help/configure-page-output-cache-settings-HA010120686.aspx
    http://office.microsoft.com/en-us/sharepoint-server-help/configure-disk-based-cache-settings-HA010176284.aspx
    http://office.microsoft.com/en-us/sharepoint-server-help/configure-object-cache-settings-HA010157783.aspx

     

    Tools


    Performance Analysis of Logs (PAL) Tool
    http://pal.codeplex.com/
    http://www.youtube.com/watch?v=8fxEs3pPmNI

    Log Parser 2.2
    http://www.microsoft.com/en-us/download/details.aspx?id=24659

    Using the Performance Analysis of Logs (PAL) Tool
    http://msdn.microsoft.com/en-us/library/cc296652(v=bts.10).aspx

    Process Monitor v3.05
    http://technet.microsoft.com/en-us/sysinternals/bb896645

    Process Explorer
    http://technet.microsoft.com/en-us/sysinternals/bb896653

    ULSViewer
    http://archive.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308
    http://www.jeremytaylor.net/2012/07/14/sharepoint-uls-log-viewer-tool-comparison-and-verdict/

    Using the Developer Dashboard
    http://msdn.microsoft.com/en-us/library/ff512745(v=office.14).aspx
    http://blogs.technet.com/b/patrick_heyde/archive/2009/11/16/sharepoint-2010-enable-using-developer-dashboard.aspx
    https://blogs.technet.com/b/speschka/archive/2009/10/28/using-the-developer-dashboard-in-sharepoint-2010.aspx

    Enable ASP.NET profiling.
    http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-with-performance-issues.aspx


    How to: Configure ASP.NET Profiler for Load Tests Using Test Settings in Visual Studio
    http://msdn.microsoft.com/en-us/library/dd504817.aspx

    Debugging, Tracing, and Profiling
    http://msdn.microsoft.com/en-us/library/7fe0dd2y(v=vs.110).aspx

    Internet Explorer Debugging Script with the Developer Tools
    http://msdn.microsoft.com/en-us/library/dd565625(v=vs.85).aspx
    http://blogs.msdn.com/b/cbowen/archive/2011/05/25/internet-explorer-9-developer-tools-deep-dive-part-1-introduction.aspx

    IIS Log Analysis Tools
    https://ilf.codeplex.com/

     

    Performance Monitoring for SharePoint References

    PowerShell script for monitoring SharePoint WFE's and SQL Server back-ends
    http://gallery.technet.microsoft.com/PowerShell-script-for-59cf3f70

    Monitoring and maintaining SharePoint Server 2013
    http://technet.microsoft.com/en-us/library/ff758658.aspx

    Performance Counters Reference (IIS 6.0)
    https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0a6c9f07-a70c-4c3d-b93d-5dfef593c744.mspx

    Windows Server 2003 Performance Counters Reference
    http://technet.microsoft.com/en-us/library/cc776490(v=ws.10).aspx

    ASP.NET Performance Monitoring, and When to Alert Administrators
    http://msdn.microsoft.com/en-us/library/ms972959.aspx

    Bottleneck-Detection Counters
    http://technet.microsoft.com/en-us/library/cc779038(v=ws.10).aspx

    Processor Object
    http://technet.microsoft.com/en-us/library/cc786359(v=ws.10).aspx

    Memory Object
    http://technet.microsoft.com/en-us/library/cc778082(v=ws.10).aspx

    Physical Disk Object
    http://technet.microsoft.com/en-us/library/cc776376(v=ws.10).aspx

    LogicalDisk Object
    http://technet.microsoft.com/en-us/library/cc784596(v=ws.10).aspx

    Request Execution Time
    http://technet.microsoft.com/en-us/library/cc738099(v=ws.10).aspx

    Current Anonymous Users
    http://technet.microsoft.com/en-us/library/cc783067(v=ws.10).aspx

    Connection Attempts/sec
    http://technet.microsoft.com/en-us/library/cc783067(v=ws.10).aspx

    Current Connections
    http://technet.microsoft.com/en-us/library/cc783067(v=ws.10).aspx


    Troubleshooting

    SharePoint Performance Troubleshooting
    http://blogs.technet.com/b/patrick_heyde/archive/2010/05/08/sharepoint-performance-troubleshooting-part-2.aspx

    Engaging Microsoft with SharePoint performance issues
    http://blogs.msdn.com/b/russmax/archive/2009/01/28/test.aspx

    Configuring Performance Monitor Log for SharePoint Performance Issues
    http://blogs.msdn.com/b/russmax/archive/2009/05/27/configuring-performance-monitor-log-for-sharepoint-performance-issues.aspx

     

    SQL Best Practices

    Best practices for SQL Server in a SharePoint Server farm
    http://technet.microsoft.com/en-us/library/hh292622.aspx

     

    Blogs

    Bill Baer
    http://blogs.technet.com/b/wbaer/

    Mark Russinovich
    http://blogs.technet.com/b/markrussinovich/

    Russ Maxwell
    http://blogs.msdn.com/b/russmax

    Patrick Heyde
    http://blogs.technet.com/b/patrick_heyde

    SharePoint Escalation Services Team
    http://blogs.msdn.com/b/spses

    Steve Peschka
    https://blogs.technet.com/b/speschka

    Stefan Goßner
    http://blogs.technet.com/b/stefan_gossner/


    Books

    Mark Russinovich

    • Windows Internals, Part 1
    • Windows Internals, Part 2


    Scot Hillier, Mirjam van Olst, Ted Pattison, Andrew Connell, Wictor Wilen, Kyle Davis

    • Inside Microsoft SharePoint 2013

    David Mann, Ted Pattison, Andrew Connell, Scot Hillier

    • Inside Microsoft SharePoint 2010