8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
1/45
Information Technology Solutions
SharePoint 2010 Performance
and Capacity Planning BestPractices
Eric Shupps
SharePoint Server MVP
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
2/45
Sponsored by:
Visit us on the web at www.binarywave.com
Real-time application monitoring, event
management, and operational health
metrics for Microsoft SharePoint
Reduce troubleshooting time by up to 30%
Increase efficiency and improve user satisfaction
Avoid downtime and costly outages
Meet or exceed service level agreements
Maximize investment in current infrastructure
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
3/45
Information Technology Solutions
About Me
SharePoint Server MVP
President, BinaryWave
Member, Patterns & Practices AdvisoryBoard (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 Best Practices
4/45
Information Technology Solutions
Agenda
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
5/45
Information Technology Solutions
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
6/45
Information Technology Solutions
Network
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
7/45
Information Technology SolutionsArchitecture
Design to function Heavy read operations
require more web servers
Heavy write operationsrequire increased SQL IOPS
Heavy services (i.e. Search)require additionalapplication servers
Design to Locality Global distribution with
heavy write may requirelocalized farms
Web Servers
Application Servers
Database Servers
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
8/45
Information Technology SolutionsBoundaries
Farm
ServicesService
Applications
Databases
System
Application
Configuration
Content
Web
ApplicationsSite Collections Sites Lists Items
5K500K 250K 30M
300
50K
Servers
10 application
pools
Web applications 5 zones
20 managed paths
Pages
25 web parts
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
9/45
Information Technology SolutionsCapacity
Capacity
Latency
Throughput Scalability
Concurrency
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
10/45
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
11/45
Information Technology Solutions
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
12/45
Information Technology SolutionsDatabase Operations
Frequency
Intensity
Search
Content Query
Collaboration
Browsing
Social
Publishing
Client Access
Workflow
Security Trimming
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
13/45
Information Technology SolutionsDatabase 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 Best Practices
14/45
Information Technology SolutionsDatabase 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 Estimate
864.4 GB
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
15/45
Information Technology SolutionsContent 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/writeoperations
Data isolation (security) Consider amount of time it
takes to backup/restore
Content
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
16/45
Information Technology SolutionsSearch Databases
Crawl databases can beextremely large
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 Best Practices
17/45
Information Technology SolutionsApplication Databases
Small to moderate size
Moderate transactional
volume Group on moderatecost/performance disk
Analytics
May be quite large May require isolation
Reporting increasesoperational overhead
Profile
BCS
App Registry
Word Automation
PerformancePoint
PowerPivot
Analytics
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
18/45
Information Technology SolutionsDatabase Management
Manually configure auto-growth settings
Defragment indexes
Limit content database size per sitecollection
Implement regular backup schedule to
reduce log file size Isolate search databases
Enforce quotas
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
19/45
Information Technology SolutionsDatabase Performance
IOPS Throughput
Latency
Seek Time Disk Speed
Cache Size
Queuing
Contention
Fragmentation
Locks
Transaction Log Writes
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
20/45
Information Technology Solutions
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
21/45
Information Technology SolutionsPage Controls
Navigation
Menus
Ribbon Delegate
Security Trimming
Publishing Fields
Search
Layout
Hidden
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
22/45
Information Technology SolutionsPage Data Queries
Page
Master
Page
Layout
Page
Navigation
ControlsPermissions
Menu
Options
Web
Parts
Data Sources
File
SystemDatabase External
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
23/45
Information Technology SolutionsSharePoint Caching
Page
First request servedfrom content
database, outputwritten to memory
Subsequentrequests for same
resource read frommemory
Disk
File-system objectscached by IIS
Database objectsnot cached
Object
Commonlyrequested objectsstored in memory
Cross-site queriescached in memory
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
24/45
Information Technology Solutions
Managing Cache Settings
DEMO
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
25/45
Information Technology SolutionsPage Customizations
Content storedon disk, static
elements
cached,
assemblies
loaded
Contentretrieved from
database on
each request
Uncustomized
Customized
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
26/45
Information Technology Solutions
0
0.05
0.1
1 2 3 4 5 6 7 8 9 10
Uncustomized Customized
Average Performance Delta: ~10%
Customization Test Results
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
27/45
Information Technology SolutionsIIS Compression
Reduces size of filestransmitted across thewire
Configurable for variousfile types
Increases CPU utilizationon WFEs
Does not effect dynamiccontent retrieved fromdatabase
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
28/45
Information Technology SolutionsCSS, Images and HTML
Start with a minimal master page
Use CSS overridesdo not modify core CSS files!
Minify and consolidate CSS files
Use image stitching (CSS sprites) on pages with alot 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 the VIRTUAL filesystem (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 Best Practices
29/45
Information Technology SolutionsJavascript
Ribbon requires extensive script
Load only necessary linked script files for
target users Script on Demand framework handles delay
loading for common scripts
Custom scripts must be delay-loaded manually
Minify and consolidate files Each linked file requires a separate request
OOTB script files are minified by default
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
30/45
Information Technology Solutions
Measuring Page Performance
DEMO
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
31/45
Information Technology Solutions
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
32/45
Information Technology SolutionsLarge Lists
Just because a list CAN hold millions ofitems doesnt mean it SHOULD
All user content in all lists throughout entiresite collection is stored in a single table inthe content database
Folders improve view performance NOTquery performance
List view web parts are now XSLT based;however, large list displays may still requirecustom code
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
33/45
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
34/45
Information Technology SolutionsThrottling and Locks
SQL Server escalates row locksto table locks(> 5000)
Query throttling reduces theimpact of any single request bylimiting the amount of dataqueried
Throttling is configurable andcan be altered for
administrators and specific timeperiods
Bit rate throttling controlsdownload speeds of largeobjects (video, Flash, Silverlight) Dependent upon BLOB cache
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
35/45
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
36/45
Information Technology Solutions
Resource Throttling
DEMO
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
37/45
Information Technology Solutions
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
38/45
Information Technology SolutionsData Access
Server Object Model
Client Object Model
CAML (LINQ)
PortalSiteMapProvider
Web Services Search
REST
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
39/45
Information Technology SolutionsThe Need for Speed
Client OMWeb
Services
REST CAMLSearch
Quality
Speed
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
40/45
Information Technology SolutionsManaging Large Data Sets
Leverage search for mass data retrieval
Use CAML queries for targeted item
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 Best Practices
41/45
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
42/45
Information Technology SolutionsDeveloper Dashboard
Developer Dashboard provides metrics on
object 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 performance
issues
hb d l
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
43/45
Information Technology SolutionsDashboard Example
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
44/45
O
8/12/2019 SharePoint 2010 - Performance and Capacity Planning Best Practices
45/45
Information Technology Solutions
Using the Developer Dashboard
to Isolate Performance Issues
DEMO