Recently I have been asked to take a look a couple of client SharePoint systems that have been experiencing a few random performance issues with the odd slow page load times. So I thought I would highlight a few tools that can be used to help with this.
The first and most simple tool to use is Task Manager, run this on your servers to monitor general CPU and memory usage also drill down into individual process memory and CPU usage, if you show processes from all user, you will be able see the w3wp.exe processes and user names (Managed accounts) running those processes. This can help you in a multi-server, multi-web environment, where an app pool on a single server may not have started.
From a command line run c:\Windows\System32\Inetsrv\appcmd list WP to see the app pools currently running, each of these will have a PID.
If you add the PID column in task manager you can tie both together and see what’s going on with your app pools on each server.
The developer dashboard is a real bonus in SP2010 for looking at page load issues, run it in ‘OnDemand’ mode, and use the icon next to your name to view the output.
This will tell you everything about your page execution time
to enable the developer-dashboard run
Stsadm –o setproperty –pn developer-dashboard –pv “OnDemand”
An excellent article about the developer dashboard is here
SharePoint server can use the ASP.NET output cache, which can help can help improve page response times by caching ASPX pages in memory, this only works for Publishing pages, use Site Collection Administration settings to get to the Output cache settings page.
Once you have enabled the cache switch on “Enable debug cache information on pages” this will add an extra comment at the end of the HTML markup of a web page indicating if the cache has been used.
<!– Rendered using cache profile:Extranet (Published Site) at: 2012-06-07T12:11:42 –>
or not used
<!– 8 Output cache not used. Reason: User can view an unpublished version of the current page. –>
Enabled by default at 100 MB, you can make this larger but remember your memory allocations !
This is probably the most over looked, but most useful cache available in SharePoint
The BlobCache this is disabled by default, but it allows files and images to be stored in a folder on your WFE server rather then being fetched from the SQL Server for each request.
This is of particular value for large image and movie files, to enable the BlobCache pick a non-system drive on your WFE for your store, then locate the line below in the web.config for the Web App in question and update the drive location and set the enabled value to true
<BlobCache location="C:\BlobCache\14" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$" maxSize="10" enabled="false" />
Don’t forget to backup your web.config before making changes as it a quick way to break SharePoint, also no need for an IIS reset as SharePoint will re-read the web.config as soon as its saved.
for more information about SharePoint caching, see the white paper at this location.
Happy SharePointing !Follow @NeilKing41
Some useful links for Capacity Performance and Management
Capacity management and sizing overview
Software boundaries and limits
Performance and capacity test results / recommendations
Performance and capacity technical case studies
InfoPath Form Services – performance and capacity requirements
Project Server 2010
Plan hardware architecture
Software Boundaries (Project Server 2007)
On one of my client projects, we heavily use SQL Server Reporting Services in SharePoint integration mode.
The benefits in comparison to Native mode are primarily around the RS SharePoint Add-in which allows us to use query string (URL) filter web parts to pass parameters to reports and create powerful dynamic dashboards as well as using SharePoint to permission and store the reports.
There is an issue however. Performance in this mode is not amazing, as detailed here:
Now that SQL Server 2012 has gone to RTM, we can start to get a measure of how well the new web part performs and I am pleased to say that the improvements appear to be great so far…
- SharePoint Version: 2010 SP1 – December 2011 CU with Project Server
- DB Server: SQL Server 2008 R2 SP1
- SSRS Version: 2008 R2 SP1
- SSRS Add-in: 2012 (Denali) – RTM
- Server Architecture: 1 x WFE / App Server (Virtual) + 1 x SQL Server (Virtual)
NB: All testing has been carried out on our DEV server, please always try out new software on a development / test environment first to ensure the benefits and to safe guard production from issues.
Table based reports rolling up Project Server and SharePoint data based on parameters provided by the end user (Cannot show due to client confidentiality I’m afraid).
Now this is just a teaser really since we will be doing full testing on our master development environment, but for now…
Project Portfolio Table Report
- Number of returns items: 17 rows
- Number of parameters: 1 (Portfolio ID)
NB: All time taken in seconds using Fiddler2
As you can see, we are seeing significant time increases with the new web part and within my client we have the go ahead to carry out further testing.
More useful links:
- SSRS 2012 Installation – Liam Cleary: http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=66
- Installing SSRS 2012 without upgrading your DB Server: Todd Klindt: http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=324
- MSDN: http://technet.microsoft.com/en-us/library/hh231671.aspx