SharePoint 2010 – The Performance Guide – Part 3 – SharePoint out of the box performance boosters

  1. Why is performance important?
  2. SharePoint out of the box performance boosters
  3. Track bottlenecks while using the SharePoint Developer Dashboard
  4. Track bottlenecks while using firebug
  5. Track bottlenecks while using Ants Performance Profiler
  6. SharePoint API considerations and best practices ….

Caching

In my opinion on of the most important tools in a performance improver toolbox is the proper use of caching.

Caching is a technique that allows us to store a specific result in memory. This allows us to retrieve the same information very quickly from memory as soon as it is retrieved from the first time. A huge performance improvement can be archived when the application doesn’t have to access the ‘slow"’’ web service or calculation each time an end users performs an action.
There is however a very important downside with caching that could have a huge impact on your application. As soon as you cache a certain result, it is not ‘up-to-date’ anymore.

Browser caching

Browser caching is always available but the browser needs direction on what files are the same and what files need to be retrieved from the site again. The files are stored in a specific folder in your OS. For Internet Explorer, these hidden files are stored in:
C:\Users\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files\

When the browser performs the request to the website, normally it receives a 200 OK response code and the Last-Modified value in the header will be used by the browser in order to decide if a new version of the file needs to be retrieved from the specific website.

When the site returns instead of a 200 OK response code a 304 not-modified response, it means that the file in the browser cache can be reused.

A variety of cache related headers are superior to the Last-Modified header because they can do more than merely provide a clue about the version of a resource…
Expires Header can be used to specify static content like images to ‘never expire’, but for dynamic content it is better to make use of the Cache-Control Header like ‘Expires: Fri, 20 Jan 2012 01:00:00 GMT’ or max-age=28800’. This latest example states that the object is stale after 8 hours in the browser cache.

How does this affect my SharePoint solution?
Well SharePoint sets these Cache-Control headers for us, the following table explains what values are set.

style library has the value private,max-age=0, this means do not cache
_layouts folder has the value max-age=31536000, this means cache 1 year

Blob caching

Blob caching is a setting you enable in the web.config file of your web application. As soon as this configuration option is enabled it modifies the max-age value to the max-age attribute of each file with the extension described in the configuration element.

<BlobCache location="C:\biwug\blobcache" path="\.(gif|jpg|jpeg|jpe|jfif|…|wma|wmv)$" maxSize="10" enabled="true" max-age="86400" />

Information: http://technet.microsoft.com/en-us/library/cc770229.aspx
flush cache:http://technet.microsoft.com/en-us/library/gg277249.aspx
Internals:http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/

ASP.NET Session State

ASP.NET Session state provides a place to store values that will persist across page requests. Values stored in Session are stored on the server and will remain in memory until they are explicitly removed or until the Session expires.

The combination of using ASP.NET Session State with a SQL server to store the data in is a perfect scenario whenever you are working in a farm with multiple WFE’s and you want to store data in the Session object of the Page and don’t have to worry about the load balancer.

More details concerning the SharePoint 2010 Session State Service can be found here:

http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx

Page output cache profiles caching

Publishing feature infrastructure and publishing feature are required on your site collection

The page output cache stores the rendered output of a page. It also stores different versions of the cached page, based on the permissions of the users who are requesting the page. Page output cache settings can be configured at the site collection level, at the site level, and for page layouts. By default, the page output cache is turned off.

http://shannonbray.wordpress.com/2010/04/04/digging-deeper-into-the-2010-caching-options-part-2/

Object cache

Publishing feature infrastructure and publishing feature are required on your site collection

In SharePoint Server 2010 you’ve got the option to use Object Caching, this technology allows us to cache specific page items. This is very useful while using Cross-List data queries.

Working with large lists , Resource Throttling

A new feature in SharePoint Server 2010, resource throttling provides options for monitoring and throttling server resources and large lists for Web applications. This enables you to control resource utilization during peak usage and prevent user activity from negatively affecting server performance.

http://community.bamboosolutions.com/blogs/sharepoint-2010/archive/2011/01/05/sharepoint-2010-cookbook-resource-throttling-settings-for-large-lists.aspx

http://tomvangaever.be/blogv2/tag/large-lists/

VN:F [1.9.22_1171]
Rating: 9.7/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
SharePoint 2010 – The Performance Guide – Part 3 – SharePoint out of the box performance boosters, 9.7 out of 10 based on 3 ratings