Transcript
Page 1: Share point 2010 performance and capacity planning best practices

SharePoint 2010

Performance and Capacity

Planning Best Practices

Eric Shupps

SharePoint Server MVP

Page 2: Share point 2010 performance and capacity planning best practices

About Me

• SharePoint Server MVP

• President, BinaryWave

• Microsoft Patterns & Practices (spg.codeplex.com)

• CKS:DEV (cksdev.codeplex.com)

• Web: www.binarywave.com

• Blog: www.sharepointcowboy.com

• Twitter: @eshupps

• Facebook: www.facebook.com/sharepointcowboy

Page 3: Share point 2010 performance and capacity planning best practices

Demonstrations

Agenda

• Infrastructure

– Network

– Servers

– Databases

• Configuration

– Caching

– Compression

– Throttling and Locks

• Pages

– Customization

– Branding

– Lists

• Instrumentation

2

4

6

8

10

Load Time

Page 4: Share point 2010 performance and capacity planning best practices

Infrastructure

Page 5: Share point 2010 performance and capacity planning best practices

Network

• Capacity

• Load

• Traffic Isolation

– Web

– Database

– Service Applications

– Search

– Authentication

• Indexing

Page 6: Share point 2010 performance and capacity planning best practices

Servers

• Design to function

– Heavy read operations require more web servers

– Heavy write operations require increased SQL IOPS

– Heavy services (i.e. Search) require additional application servers

• Design to Locality

– Global distribution with heavy write may require localized farms

Page 7: Share point 2010 performance and capacity planning best practices

Database Operations

Frequency

Inte

nsi

ty

Search

Content Query

Collaboration

Browsing

Social

Publishing

Client Access

Workflow

Security Trimming

Page 8: Share point 2010 performance and capacity planning best practices

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 DB’s 269.5 GB

Number of User Profiles

50,000

Total Database Sizing Estimate

864.4 GB

Page 9: Share point 2010 performance and capacity planning best practices

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

Page 10: Share point 2010 performance and capacity planning best practices

Content Databases

• Practical limit is 200GB

– Max supported limit is 4TB*

• 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 to backup/restore

Content

Page 11: Share point 2010 performance and capacity planning best practices

Search Databases

• Crawl databases can be extremely large

• High index sensitivity

• Heavy transactional volume

• Isolate crawl and temp databases

– Distribute across spindles and LUN’s

• Highest performance disk

Admin

Crawl

Properties

Page 12: Share point 2010 performance and capacity planning best practices

Database Management

• Manually configure auto-growth settings

• Defragment indexes on a regular basis

• Limit content DB size per site collection

• Assign disks based on size, volume and sensitivity

• Isolate transaction logs

• Implement regular backup schedule to reduce log file size

• Enforce quotas

Page 13: Share point 2010 performance and capacity planning best practices

Configuration

Page 14: Share point 2010 performance and capacity planning best practices

SharePoint Caching

Page

First request served from content

database, output written to memory

Subsequent requests for same

resource read from memory

Disk

File-system objects cached by IIS

Database objects not cached

Object

Commonly requested objects stored in memory

Cross-site queries cached in memory

Page 15: Share point 2010 performance and capacity planning best practices

Managing Cache Settings

DEMO

Page 16: Share point 2010 performance and capacity planning best practices

IIS Compression

• Reduces size of files transmitted across the wire

• Caches compressed content on disk

• Configurable for various file types

• Compression range from 0 - 9

• Increases CPU utilization on WFE’s

– Size hardware accordingly

• Does not effect dynamic content retrieved from database

Page 17: Share point 2010 performance and capacity planning best practices

Setting Compression Levels

DEMO

Page 18: Share point 2010 performance and capacity planning best practices

Throttling and Locks

• SQL Server escalates row locks to table locks (> 5000)

• Query throttling reduces the impact of any single request by limiting the amount of data queried

• Throttling is configurable and can be altered for administrators and specific time periods

• Bit rate throttling controls download speeds of large objects (video, Flash, Silverlight)

– Dependent upon BLOB cache

Page 19: Share point 2010 performance and capacity planning best practices

Resource Throttling

DEMO

Page 20: Share point 2010 performance and capacity planning best practices

Pages

Page 21: Share point 2010 performance and capacity planning best practices

Page Controls

• Navigation

• Menus

• Ribbon

• Delegate

• Security Trimming

• Publishing Fields

• Search

• Layout

• Hidden

Page 22: Share point 2010 performance and capacity planning best practices

Page Data Queries

Page

Master

Page

Layout

Page

Navigation

Controls Permissions

Menu

Options

Web

Parts

Data Sources

File

System Database External

Page 23: Share point 2010 performance and capacity planning best practices

Page Customizations

Uncustomized

Cache

Customized

Page 24: Share point 2010 performance and capacity planning best practices

0

0.02

0.04

0.06

0.08

0.1

1 2 3 4 5 6 7 8 9 10

Uncustomized Customized

Average Performance Delta: ~10%

Test Results

Page 25: Share point 2010 performance and capacity planning best practices

Customization

DEMO

Page 26: Share point 2010 performance and capacity planning best practices

Branding

• Start with a minimal master page

• Minify and consolidate linked files

– Reduce size and number of GET operations

• 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 the VIRTUAL file system (Style Library, Publishing Images)

– Assets in libraries are stored in database

– Easy for users to modify but reduce performance

Page 27: Share point 2010 performance and capacity planning best practices

Lists

Page 28: Share point 2010 performance and capacity planning best practices

List Items

• Just because a list CAN hold millions of items doesn’t mean it SHOULD

• All user content in all lists throughout entire site collection is stored in a single table in the content database – Consider query impact across site

collection

• Folders improve view performance NOT query performance

• List view web parts are now XSLT based; however, large list displays may still require custom code

Page 29: Share point 2010 performance and capacity planning best practices

List Definitions

• Rows – More than 5,000 rows in a list is “large”

• Default throttle limit

• Corresponds to SQL lock escalation triggers

• Monitor locks if increasing throttle limit

• Columns – More columns = more SQL rows

– More SQL rows can slow down performance up to 35%

• Storage – Use Remote Blob Storage to eliminate storage

of large files within SQL

– Not intended to increase query performance

Page 30: Share point 2010 performance and capacity planning best practices

Instrumentation

Page 31: Share point 2010 performance and capacity planning best practices

Developer Dashboard

• Developer Dashboard provides metrics on object execution for individual pages

• Displays code-level request data for events

• Provides drill-down process isolation

• Specifies related database queries

• Identifies request allocations and control event offsets

• Developers can implement monitoring scopes to display component performance data

Page 32: Share point 2010 performance and capacity planning best practices

Dashboard Example

Total Page Execution Time

Related Queries

Control Events

Page 33: Share point 2010 performance and capacity planning best practices

Using the Developer Dashboard to Isolate

Performance Issues

DEMO

Page 34: Share point 2010 performance and capacity planning best practices

More Information

SharePoint Server 2010 Capacity Management: Software Boundaries and Limits

http://technet.microsoft.com/en-us/library/cc262787.aspx

Capacity Management and Sizing Overview for SharePoint Server 2010

http://technet.microsoft.com/en-us/library/ff758647.aspx

Capacity Planning for SharePoint Server 2010 http://technet.microsoft.com/en-us/library/ff758645.aspx

Performance Testing for SharePoint Server 2010 http://technet.microsoft.com/en-us/library/ff758659.aspx

Storage and SQL Server Capacity Planning and Configuration

http://technet.microsoft.com/en-us/library/cc298801.aspx

Performance and Capacity Technical Case Studies http://technet.microsoft.com/en-us/library/cc261716.aspx

Monitoring and Maintaining SharePoint Server 2010 http://technet.microsoft.com/en-us/library/ff758658.aspx

Performance Testing for SharePoint Server 2010 http://technet.microsoft.com/en-us/library/ff758659.aspx

Page 35: Share point 2010 performance and capacity planning best practices

Thank You for attending this session!

Please fill in the evaluation form


Recommended