Rev Your Engines - SharePoint Performance Enhancements

28
Rev Your Engines SharePoint Performance Enhancements Tweet this talk #UConnect @eshupps Eric Shupps SharePoint MVP

Transcript of Rev Your Engines - SharePoint Performance Enhancements

Page 1: Rev Your Engines - SharePoint Performance Enhancements

Rev Your EnginesSharePoint Performance Enhancements

Tweet this talk

#UConnect@eshupps

Eric ShuppsSharePoint MVP

Page 2: Rev Your Engines - SharePoint Performance Enhancements

About Me

@eshupps sharepointcowboywww.sharepointcowboy.-com

slideshare.net/eshupps linkedin.com/in/eshupps

Eric ShuppsSharePoint Server MVP

Page 3: Rev Your Engines - SharePoint Performance Enhancements

Agenda

Learn something you might if pay

attention you will.

BuildTo

Suit

TheDatabase

IsKing

CacheIn

Make theNetworkWork for

You

KeepTrafficMoving

LookGood ButPerformBetter

Page 4: Rev Your Engines - SharePoint Performance Enhancements

Architecture

Database

Search BI App

Users

Web Web

2007 & 2010

Page 5: Rev Your Engines - SharePoint Performance Enhancements

Architecture

Database

Users

Search BI App

Web Web

Database

DistritbCache

DistribCache

Request

Manager

Request

Manager

Request

Manager

OfficeWeb Apps

Workflow

Apps

Azure

O365

2013

HYBRID

Page 6: Rev Your Engines - SharePoint Performance Enhancements

Internal Network• Capacity• Load• Traffic Isolation• Web• Database• Service Applications• Search• Caching• Workflow• WAC

• Indexing

Page 7: Rev Your Engines - SharePoint Performance Enhancements

External NetworkMigrations/Initial Data Transfer• Internal and External Bandwidth• ExpressRoute• Azure Storage

Cloud• Content Delivery Network• Geographic Distribution (WAN link

balancing)• Page contents

Page 8: Rev Your Engines - SharePoint Performance Enhancements

Database Optimization

Migration• Content

archiving• Page cleanup• Data purging• Shrink files• Versions!

Operations • Disk I/O• Index

maintenance• Auto-growth• Quotas

Disaster Recovery• Database size• Available

bandwidth

Page 9: Rev Your Engines - SharePoint Performance Enhancements

Database Distribution

• Provisioning overhead

• Data isolation

• Content storage

• Query locks and throttling

• Utilization• Recoverability

• Resource Consumption

• Availability

System Services

Site Collecti

onsLists

Page 10: Rev Your Engines - SharePoint Performance Enhancements

Database Fundamentals

Physical hardware resources

Network connectivity

Disk specifications

File location

Index maintenance

High availability

Page 11: Rev Your Engines - SharePoint Performance Enhancements

Request Management

SP aware rule basedtraffic shaping

Throttling

Prioritization

Routing

Load Balancing

Seek not too much data or throttled

you shall be.

Page 12: Rev Your Engines - SharePoint Performance Enhancements

Request Management ModesIntegrated

Dedicated

Page 13: Rev Your Engines - SharePoint Performance Enhancements

Request Management Components

Machine Pool

RoutingTarget

RoutingTarget Execution Group

Throttling Rules

Health

Weight

StaticWeig

ht

Health

Weight

StaticWeig

ht

Routing

Rule

Routing

Rule

Routing

Rule

Routing

Rule

Page 14: Rev Your Engines - SharePoint Performance Enhancements

Request Management RulesThrottling Rules

Rule1

Rule2

Rule3

Execution Group 0

Rule1

Rule2

Rule3

Execution Group 1

Rule5

Rule6

Rule7

Execution Group 3

Rule8

Rule9

Rule0

Machine Pool 1Serve

r1

Server2

Server3

Machine Pool 2Serve

r4

Server5

Server6

Page 15: Rev Your Engines - SharePoint Performance Enhancements

Request Management CommandsEnable RoutingGet-SPWebApplication | Set-SPRequestManagementSettings –RoutingEnabled $true –ThrottlingEnabled $true

Static WeightingGet-SPWebApplication | Get-SPRequestManagementSettings | Set-SPRequestManagementSettings –RoutingEnabled $true –ThrottlingEnabled $false –RoutingWeightScheme Static

Health WeightingGet-SPWebApplication | Get-SPRequestManagementSettings | Set-SPRequestManagementSettings –RoutingEnabled $true –ThrottlingEnabled $false –RoutingWeightScheme Health

Page 16: Rev Your Engines - SharePoint Performance Enhancements

Request Management CommandsAdd Routing Target$web=Get-SPWebApplication -Identity http://portal.lonestar.com$rm=Get-SPRequestManagementSettings -Identity $web Add-SPRoutingMachineInfo –RequestManagementSettings $rm -Name SP2013A -Availability Available

Create Routing Rule$w = Get-SPWebApplication -identity http://portal.lonestar.com$rmset = $w | Get-SPRequestManagementSettings$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.xlsx" -MatchType Regex$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name DemoPool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name SP2013A)$rmset | Add-SPRoutingRule -Name "Excel Rule" -Criteria $criteria -MachinePool $mp

Page 17: Rev Your Engines - SharePoint Performance Enhancements

Distributed CacheIndepende

ntCache

Configurable

MemoryAllocation

No DatabasePersistenc

e

Dedicatedor

CollocatedFaster things are if cached they

become.

Page 18: Rev Your Engines - SharePoint Performance Enhancements

Distributed Cache Dependencies

LoginTokenCache

AccessCache

Feeds(Activities,Likes,Mentions,Do

c Actions)

SearchQuery

Web Part

LastModifiedCache

SecurityTrimming

Cache

OneNoteThrottling

AppTokenCache

View StateCache

DefaultCache

Page 19: Rev Your Engines - SharePoint Performance Enhancements

Distributed Cache GuidelinesDeployment size Small farm Medium farm Large farm Total number of users < 10,000 < 100,000 < 500,000Recommended cache size for the Distributed Cache service

1 GB(Default 10% RAM)

2.5 GB(Manual adjustment)

12 GB(Limit of16GB per server)

Total memory allocation for the Distributed Cache service (double the recommended cache size above)

2 GB(Memory size must match in all servers)

5 GB 24 GB(32GB Max Limit)

Recommended architectural configuration

Dedicated server or co-located on a front-end server

Dedicated server Dedicated server

Minimum cache hosts per farm 1 1 1

Page 20: Rev Your Engines - SharePoint Performance Enhancements

Request Management CommandsProvision$instanceName ="SPDistributedCacheService Name=AppFabricCachingService”$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername} $serviceInstance.Provision()

Add ServerAdd-SPDistributedCacheServiceInstance

Set Cache SizeUpdate-SPDistributedCacheSize -CacheSizeInMB 1200

Page 21: Rev Your Engines - SharePoint Performance Enhancements

User InterfaceClient-Side

Rendering

MinimalDownload

DeviceChannels

OptimizedMarkup

ImageRendition

s

ContentBy

Search

Deceptive is the power of UX. Seek

not form over function.

Page 22: Rev Your Engines - SharePoint Performance Enhancements

Customizations

Page Components

• Markup• Navigation• Images• Scripts• Code• Web and App

Parts

Branding

• Styles• Resources• Master Pages• JavaScript

Injection

Page 23: Rev Your Engines - SharePoint Performance Enhancements

Page Components

Page

Page

Master Page

Layout Page

Navigation

ControlsPermissi

onsMenu

OptionsWebParts

Data Sources

File System Database Extern

al

Page 24: Rev Your Engines - SharePoint Performance Enhancements

Minimal Download

2010Page 1

Controls

Chrome

Content

Page 2Controls

Chrome

Content

First Request

Second Request

2013Page 1

Controls

Chrome

Content

Page 2Controls

Chrome

Content

Dow

nloa

dM

anag

erD

ownl

oad

Man

ager

First Request

Second Request

Page 25: Rev Your Engines - SharePoint Performance Enhancements

Page Rendering

2010 2013

Page 26: Rev Your Engines - SharePoint Performance Enhancements

Page Weight2010

29 Requests / 570KB

2013

21 Requests / 321KB

Page 27: Rev Your Engines - SharePoint Performance Enhancements

Office 365

MasterPage

Scripts

Branding

StyleAssets

ContentQuery

ContentSearch

ListViews

Apps

Navigation

StuffYou

Can’t Control

Page 28: Rev Your Engines - SharePoint Performance Enhancements

Summary

Awake still are you?

BuildTo

Suit

TheDatabase

IsKing

CacheIn

Make theNetworkWork for

You

KeepTrafficMoving

LookGood ButPerformBetter