sharepoint 2010 performance and capacity planning
TRANSCRIPT
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
1/42
SharePoint 2010 Performance andCapacity Planning
Eric Shupps
BinaryWave Inc.
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
2/42
Sponsored by:
Visit us on the web at www.binarywave.com
Real-time application monitoring, eventmanagement, and operational healthmetrics for Microsoft SharePoint
Reduce troubleshooting time by up to 30%Increase efficiency and improve user satisfactionAvoid downtime and costly outagesMeet or exceed service level agreementsMaximize investment in current infrastructure
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
3/42
Who Am I?
Eric Shupps President, BinaryWave SharePoint Server MVP
Member, Patterns & Practices Advisory Board(spg.codeplex.com )
Web: www.binarywave.com Blog: www.sharepointcowboy.com
Twitter: @eshupps Facebook: www.facebook.com/sharepointcowboy
http://spg.codeplex.com/http://www.binarywave.com/http://www.sharepointcowboy.com/http://twitter.com/http://www.facebook.com/sharepointcowboyhttp://www.facebook.com/sharepointcowboyhttp://twitter.com/http://twitter.com/http://www.sharepointcowboy.com/http://www.binarywave.com/http://spg.codeplex.com/ -
8/12/2019 SharePoint 2010 Performance and Capacity Planning
4/42
Agenda
Infrastructure Databases
Pages Lists
Components
IT Professional
Developer
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
5/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
6/42
Network
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
7/42
Architecture
Design to function Heavy read operations require
more web servers Heavy write operations require
increased SQL IOPS Heavy services (i.e. Search)
require additional applicationservers
Design to Locality Global distribution with heavy
write may require localizedfarms
Web Servers
Application Servers
Database Servers
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
8/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
9/42
Database Operations
Frequency
I n t e
n s i
t y
Search
Content Query
Collaboration
Browsing
Social
Publishing
Client Access
Workflow
Security Trimming
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
10/42
Database Types
Configuration
Central Admin
Subscription
Social Tagging
Search Admin
Synchronization
Profile
Managed Metadata
Properties
Usage
Web Analytics
Search Crawl
Reporting
Content
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
11/42
Database Calculations
Variable Value# Documents 1,000,000
Average Size 150 KB
# List Items 3,000,000
# Versions 3
Formula: Database size = ((D V) S) + (10 KB (L + (V D)))
Database Size Estimates
Content DB Size 486.5 GB
Crawl 22.4 GB
Property 7.3 GB
Profile 48.8 GB
Sync 30 GB
All other DBs 269.5 GB
Number of User Profiles
50,000
Total Database Sizing Estimate864.4 GB
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
12/42
Content Databases
Practical limit is 100GB Max supported limit is 200GB
Create separate databases for: Site collections with large lists Large numbers of subsites Intensive read/write operations Data isolation (security)
Consider amount of time it takes tobackup/restore
Content
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
13/42
Search Databases
Crawl databases can be extremelylarge
High index sensitivity Heavy transactional volume Isolate crawl and temp
databases Distribute across spindles and
LUNs
Highest performance disk
Admin
Crawl
Properties
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
14/42
Application Databases
Small to moderate size Moderate transactional volume Group on moderate
cost/performance disk Analytics
May be quite large May require isolation Reporting increases operational
overhead
Profile
BCS
App Registry
Word Automation
PerformancePoint
PowerPivot
Analytics
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
15/42
Database Management
Manually configure auto-growthsettings
Defragment indexes Limit content database size per
site collection Implement regular backup
schedule to reduce log file size Isolate search databases
Enforce quotas
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
16/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
17/42
Page Controls
Navigation Menus Ribbon Delegate Security Trimming Publishing Fields Search Layout Hidden
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
18/42
Page Data Queries
PageMasterPage
LayoutPage
NavigationControls
PermissionsMenu
OptionsWebParts
Data Sources
FileSystem
Database External
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
19/42
DEMOMeasuring Page ComponentPerformance
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
20/42
Page CustomizationsUncustomized Page Customized Page
Contentstored on
disk, staticelementscached,
assembliesloaded
Contentretrieved
fromdatabaseon eachrequest
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
21/42
0
0.02
0.040.06
0.08
0.1
1 2 3 4 5 6 7 8 9 10
Uncustomized Customized
Average Performance Delta: ~10%
Test Results
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
22/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
23/42
IIS Compression
Reduces size of files transmittedacross the wire
Configurable for various filetypes
Increases CPU utilization onWFEs
Does not effect dynamic contentretrieved from database
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
24/42
DEMOEffect of IIS Compression on PageComponents
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
25/42
CSS, Images and HTML
Start with a minimal master page Use CSS overrides do not modify core CSS files! Minify and consolidate CSS files Use image stitching (CSS sprites) on pages with a lot of small
images to reduce number of requests Store resources (style sheets, master pages, layout pages,
images) on the PHYSICAL file system (i.e. /_layouts/) not theVIRTUAL file system (Style Library, Publishing Images)
Assets in libraries are stored in database Easy for users to modify but reduce performance
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
26/42
Javascript and JQuery
Load only necessary javascript for target users Anonymous users dont need the same javascript
references as contributors and designers http://www.sharepointnutsandbolts.com/2011/01/eliminatin
g-large-js-files-to-optimize.html Minify and consolidate javascript files JQuery is a tool use it appropriately but dont abuse it
A page isnt loa ded until ALL content is displayed Many operations iterate recursively through the DOM Simple syntax != increased performance
Client Object Model
http://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.html -
8/12/2019 SharePoint 2010 Performance and Capacity Planning
27/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
28/42
Large Lists
Just because a list CAN holdmillions of items doesnt mean itSHOULD
All user content in all lists
throughout entire site collection isstored in a single table in thecontent database
Folders improve view performanceNOT query performance
List view web parts are now XSLTbased; however, large list displaysmay still require custom code
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
29/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
30/42
Throttling and Locks
SQL Server escalates row locks totable locks(> 5000)
Query throttling reduces the impact
of any single request by limiting theamount of data queried
Throttling is configurable and canbe altered for administrators andspecific time periods
Bit rate throttling controls downloadspeeds of large objects
Dependent upon BLOB cache
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
31/42
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
32/42
Page Caching
Store query results in page cache to reduce databasecalls
First load populates cache, subsequent loads readfrom cache
Set cache expiration policies based on frequency of datamodifications
Static content = long expiration window Dynamic content = short expiration window
Cache as much content as possible but be aware ofimpact on server resources
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
33/42
DEMOCaching SharePoint Data Queries
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
34/42
Data Access
Server Object Model Client Object Model CAML (LINQ) PortalSiteMapProvider Web Services Search
REST
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
35/42
The Need for Speed
Client OMWeb
Services
REST CAMLSearch
QualitySpeed
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
36/42
Managing Large Data Sets
Leverage search for mass dataretrieval
Use CAML queries for targeteditem selection
Joins reduce performance Maintain SQL indexes for optimal
query execution Manipulate item data using in-
memory objects
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
37/42
Data Aggregation
SPSiteDataQuery Allows data to be retrieved across multiple list objects. Provides moderate scalability but has performance implications for large
datasets.
LINQ to SharePoint Does not work with external (BCS) lists. Can result in suboptimal queriestest for performance.
Search Data is indexed and not real time (only valid as of last indexing
operation). Does not provide context of results (no SPListItem, SPList, SPWeb,
etc.).
PortalSiteMapProvider Cached, non-real-time data.
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
38/42
Developer Dashboard
Developer Dashboard provides metrics onobject execution for individual pages
Displays code-level request data for events
Includes related database queries Identifies request allocations and control event
offsets
Used by developers to isolate performanceissues
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
39/42
Dashboard ExampleTotal PageExecution Time
RelatedQueries
Control Events
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
40/42
Code Instrumentation
Custom Code
Events Methods ServiceCalls Queries
SPMonitoredScope
Microsoft.SharePoint.Utilities.SPMonitoredScopeprovides instrumentation for custom code
Subscopes are displayed as children of parent scope Does not work with sandbox solutions
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
41/42
DEMOInstrumenting Code for the Developer
Dashboard
-
8/12/2019 SharePoint 2010 Performance and Capacity Planning
42/42