Chris’s SharePoint Reflections

Just another WordPress.com weblog




  • Chris Zhong

    IT consultant Australia








SharePoint Performance Guide

Posted by chrissyz on January 19, 2009

Performance always attracts people’s attention (End user especially). Here are some recommendations/trouble shootings for SharePoint sites performance issues.

Firstly, let me explain two fundamental concepts in any website’s performance.

Throughput: In Wikipedia, the throughput is the average rate of successful message delivery over a communication channel. Get it? J My “customer-understandable” interpretation of that is how many pages can a system serves over standard unit of time. Be aware the difference of typical and peak user load. Typical user load means average requests over standard unit of time. As for peak, you need to take concurrency into consideration. The rule of thumb for planning will be: plan for peak, assuming 10% concurrency.

Latency: a time delay between the moment something is initiated and the moment its first effect begins. My interpretation is how fast the page loaded. There are three factors that have impact on latency:

·         Server processing: SQL processing, number of SQL round trip, AJAX processing, security trimming etc.

·         Client processing: JavaScript, CSS, AJAX request, HTML load, Client machine specifications etc.

·         Wire transfer : bandwidth, size of download, etc

Suggestions for poor throughput:

·         Check your SQL performance, like CPU utilization, how heavy is the load etc. Always use SQL best practice for performance. Microsoft has a white paper provides key recommendations and best practice to help you to plan and monitor your SQL Server Storage requirements to support optimal performance

·         Make sure there are no conflicts in asynchronous operations and timer jobs. For example, you are not going to run 50 custom jobs all at 2am in the morning. 🙂

·         Carefully plan for your site hierarchy, site content and deployment. Every time you create a web application, you will lose 56M memory before you start loading anything. Therefore, you want to try to minimize the number of web applications and application pools and also limit the number of Shared Service provider.

·         Check custom code. The downside for writing custom web parts and event handlers in SharePoint is the sacrifice of performance if handled without caution. Developers need to write efficient code like creating and destroying SharePoint objects, monitoring SOAP and database connections and round trips, optimizing how much XML you use etc.

·         Looks for hardware/network components configuration error.

 

Suggestions for poor latency:

·         The number one killer for latency is custom web part. Watch for SQL round trips, unnecessary data, excessive client side scripting.

·         Check for page payload. OOTB, the main page download size should be around 200kb and shouldn’t be significant higher. We will try to use page compression where possible. For example, you have the option to make CORE.JS available on Edit mode for performance improvement.

·         Using Caching strategy. You can turn on BLOB and Output catching. There is an article on Technet listing all SharePoint caching options:  http://technet.microsoft.com/en-us/library/cc298466.aspx   However, be careful that catching could actually make performance worse if handled improperly as it can take up memory and processor time.

 

Besides the above ones, there are some other general suggestions towards improving SharePoint site performance.

·         Recommend 64 bit for back end services which can leverage additional addressable memory, like database server, Index server.

·         Using server farm and have dedicate roles for each single server

·         Reduce the number of unghosted pages. Unghosting reduces the system efficiency and performance as the request will have to go to the database to fetch data instead of just hitting the cache. Example of this is creating site definitions are much more efficient than using site templates created through the UI.

Finally, there are a couple of testing tools which can help you trouble shooting:

·         Visual Studio Team System 2008 Test Edition

·         SharePoint Test data load (WSSDW.exe) is a native Microsoft tool that can be used to perform SharePoint load testing. The tool populates data for testing deployments of MOSS 2007 and is a command-line executable program that accepts an XML configuration file that specifies the objects to be populated.

·         Microsoft Operation Manager

 

Advertisements

One Response to “SharePoint Performance Guide”

  1. Hi Chris

    I’ve just started a series of blog entries that also addresses the problem of SharePoint performance of custom web parts and sharepoint lists. You may want to check it out HERE!

    Regards
    Andi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: