share point 2010 performance and capacity planning best practices

Post on 22-Nov-2014

4.315 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

SharePoint 2010

Performance and Capacity

Planning Best Practices

Eric Shupps

SharePoint Server MVP

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

Demonstrations

Agenda

• Infrastructure

– Network

– Servers

– Databases

• Configuration

– Caching

– Compression

– Throttling and Locks

• Pages

– Customization

– Branding

– Lists

• Instrumentation

2

4

6

8

10

Load Time

Infrastructure

Network

• Capacity

• Load

• Traffic Isolation

– Web

– Database

– Service Applications

– Search

– Authentication

• Indexing

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

Database Operations

Frequency

Inte

nsi

ty

Search

Content Query

Collaboration

Browsing

Social

Publishing

Client Access

Workflow

Security Trimming

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

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

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

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

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

Configuration

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

Managing Cache Settings

DEMO

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

Setting Compression Levels

DEMO

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

Resource Throttling

DEMO

Pages

Page Controls

• Navigation

• Menus

• Ribbon

• Delegate

• Security Trimming

• Publishing Fields

• Search

• Layout

• Hidden

Page Data Queries

Page

Master

Page

Layout

Page

Navigation

Controls Permissions

Menu

Options

Web

Parts

Data Sources

File

System Database External

Page Customizations

Uncustomized

Cache

Customized

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

Customization

DEMO

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

Lists

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

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

Instrumentation

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

Dashboard Example

Total Page Execution Time

Related Queries

Control Events

Using the Developer Dashboard to Isolate

Performance Issues

DEMO

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

Thank You for attending this session!

Please fill in the evaluation form

top related