vSharePoint-SharePoint Performance Part 2

download report

Transcript vSharePoint-SharePoint Performance Part 2

SharePoint Acceleration
Performance for the Rest of Us
Part 2 - Revenge of the Milliseconds
Keith Tuomi
SharePoint Consultant / Developer at itgroove
Developing Online Systems since Himem.sys
11 years as dedicated .NET/Microsoft Developer
Itgroove Blogs!
SharePoint Performance Part 1
Focused on:
Desktop Operating Systems
Content Management
Key Tools:
Good ol’ web design smarts:
The Importance of Speed for your SharePoint Portal
Web Application
Adaptive behavior
The ability of the user interface to track a user's behavior and respond appropriately.
Content density
The concentration of content elements on the
user interface of a design.
Search performance
Defined by the search time divided by the number of elements
in an interface. Decreases significantly as the number of
elements increases
Interfaces that allow adaptations to particular user preferences and tasks they wish to perform.
Minimal memory load
Minimal (human) memory load through easily recognized, sufficiently detailed
interfaces that offer clear solutions This minimizes cognitive overhead on shortterm "working memory" during complex thinking activities. Optimum learning
occurs when the cognitive load is kept to a minimum.
The Importance of Speed for your SharePoint Portal
Web Application
Speed is a measure of how fast a web site responds to user input. There are two main components
to web site speed:
1) initial download and display speed
2) response time of particular web page elements to user input. Users are sensitive to download
speed, with tolerable thresholds that depend on perceived complexity, bandwidth speed, and other
factors (such as age).
Next Steps – SharePoint Config
Q. How far can I take SharePoint administrative
privileges to improve performance?
- Blob Cache
- Output Caching
- Object Caching
- Throttling
- Indexing
- Health Analyzer
Blob Cache
Disk-based cache that stores files that are used by
Web pages to help them load quickly in the
browser, and reduces the load on the database
These files are known as binary large objects
(BLOBs), and the cache is known as the BLOB
The BLOB cache is stored directly on the hard disk
drive of a front-end Web server computer. The
first time that a Web page is called, these files are
copied from the database to the cache on the
server hard disk drive, and all subsequent requests
for those files are then served from the hard disk
drive cache of the server.
Output Caching
In-memory cache that saves rendered ASPX pages.
Improves performance in two ways:
1. Reduces the amount of SQL calls.
2. Reduces workload on the WFE because pages do
not need to be re-rendered.
Output Cache should not be used
with sites using a low read to write
ratio because frequent changes to
content make it hard to keep the
cache fresh. Understanding how
important it is to have the most
current content available to the user
is vital.
If the pages are anonymous, then no SQL check needs
to be done at all to present the cached pages.
Microsoft testing concluded a ninefold
improvement in throughput when compared to
having to render the page every time it was
(only available when publishing feature enabled)
Output Caching
Create Output Cache Profiles
1. Go to the home page for the top-level site in the site collection.
2. On the Site Actions menu , click Site Settings.
3.Under Site Collection Administration, click Site collection cache profiles.
4. On the Cache Profiles page, click Add New item. In the Title section, type
a title for the new cache profile. In the Display Name section, type a name
for the cache profile.
More: http://office.microsoft.com/en-us/sharepoint-server-help/improve-page-rendering-by-configuring-output-cachingHA101785628.aspx
Object Caching
Object cache stores metadata about
SharePoint Server objects (like SPWeb,
SPSite, SPList, etc.) on the WFEs, in
When a page is rendered, if there is data that
needs to be retrieved through these
objects, the SQL Server will not be hit.
Features of SharePoint that use Object cache
are publishing, content query web part,
navigation, search query box and metadata
These features are specifically written to use
the Object cache API instead of the
SharePoint API directly. Developers writing
custom functionality can also tap into the
Object cache API.
Object Caching
Configuring the object cache
1. On the Site Actions menu , point to Site Settings, and then click Modify All Site Settings.
2. Under Site Collection Administration, click Site collection object cache.
3. In the Object Cache Size section, type a value in the box to specify the amount of memory (in
megabytes) that you want the object cache to use.
4.In the Cross List Query Cache Changes section, select one of the following options:
 If your content changes frequently and you want to display the most accurate results
possible, select Check the server for changes every time a cross list query runs .
 On site collections where the improved performance you get from caching does not
compromise the accuracy of the results, select Use the cached result of a cross list query
for this many seconds.
5. In the Cross List Query Results Multiplier section, type a number from 1 through 10 to use as a
results multiplier. Type a larger number if your site collection has unique security permissions
applied to many lists and sites. Type a smaller number if your site collection does not have
unique permissions on each list or sites. A smaller multiplier uses less memory per query.
Object Caching
More on Cross-List Querying..
The cross-list query cache calls the site (SPWeb) and searches for items in one or more
lists. The results of the query are cached, and data from multiple list sources is
returned. Caching improves the query's performance.
The Content By Query Web Part (CQWP) uses cross-list query caching to improve its
speed and performance. When you cache a cross-list query, no database round
trip is required to retrieve results for a CQWP. You can use cross-list query caching
across sites in a site collection, and the caching system retrieves and caches an
optimum set of query results for each query. Additionally, the cache configuration
includes enough metadata to dynamically trim for security each time a page is
You can almost always cache results of a cross-list query. However, when a checkedout document is queried, data retrieved from that document bypasses the caching
mechanism; that data is not cached until the document is checked in.
Resource throttling provides options for
monitoring and throttling server resources
and large lists for Web applications.
Enables you to control resource utilization during
peak usage and prevent user activity from negatively
affecting server performance.
In SharePoint Server 2010, a list can support up to 50 million items..
Views are restricted to 5000 for end users, OOTB. What the?
Remember: SharePoint is not a relational database.
Rather, SharePoint lives inside a relational database.
The overhead in bringing you all the SharePoint goodness is what
results in the, at first glance, very low throttling thresholds.
Further Info: http://msdn.microsoft.com/en-us/library/ff798465.aspx
- Change the list view threshold, both for users and for site
- Specify whether developers can use the object model to
programmatically override the list view threshold.
- Specify a daily time window when queries that exceed the list view
threshold are permitted. This enables organizations to schedule
resource-intensive maintenance operations, which would typically
violate the list view threshold, during off peak hours.
- Limit the number of lookup, person, or workflow status fields that
can be included in a single database query.
Further Info: http://msdn.microsoft.com/en-us/library/ff798465.aspx
To improve the performance of a large list or library, you can index a column. An index
on a column enables SharePoint to quickly analyze the data in that column, even
when working with thousands or millions of items. For a view to quickly filter
through a large number of items, the filter must be applied to a column that is
It is important to consider the following when you create and use indexed columns:
-Each additional column index consumes extra resources in the database. Therefore,
you should add indexes only to columns that will be used actively in views on the
list or library.
-When you define a view in a list or library with lots of items, it is important to use a
filter that will return no more than two thousand items.
-Only one indexed column can be used in a view filter. You can filter on many different
columns, but it is important that the first column that you use to filter the view has
an index and that it sufficiently reduces the total number of items returned.
Further Info: http://blog.dynatrace.com/2009/01/28/sharepoint-list-performance-how-list-column-indicesreally-work-under-the-hood/
Health Analyzer
SharePoint Health Analyzer is a feature in Microsoft SharePoint
Foundation 2010 that enables administrators to schedule regular,
automatic checks for potential configuration, performance, and
usage problems in the server farm.
Any errors that SharePoint Health Analyzer finds are identified in
status reports that are made available to farm administrators in
Central Administration.
Status reports explain each issue, list the servers where the problem
exists, and outline the steps that an administrator can take to
remedy the problem.
In some cases, errors are repaired automatically as soon as they are
found, and farm administrators are informed of the repairs.
Further Info: http://msdn.microsoft.com/en-us/library/ee534957.aspx