rev your engines: sharepoint performance best practices
TRANSCRIPT
SharePoint Performance OptimizationERIC SHUPPS
MVP
SPONSORS
About Me
@eshupps sharepointcowboywww.sharepointcowboy.com
slideshare.net/eshupps linkedin.com/in/eshupps
Eric ShuppsOffice Server MVP
Agenda
• Build to Suit• Make the Network Workf for You• The Database is King• Keep Traffic Moving• Cache In• Look Good but Perform Better
Architecture
Database
Search BI App
Users
Web Web
2007 & 2010
Architecture
Database
DistritbCache
DistribCache
RequestManager
RequestManager
RequestManager
OfficeWeb Apps
Workflow
Apps
Azure
O365
2013 & 2016
HY
BR
IDUsers
Search BI App
Web Web
Database
Internal Network• Capacity• Load• Traffic Isolation
• Web• Database• Service Applications• Search• Caching• Workflow• WAC
• Indexing
External Network
Migrations/Initial Data Transfer• Internal and External Bandwidth• ExpressRoute• Azure Storage
Cloud• Content Delivery Network• Geographic Distribution (WAN link
balancing)• Page contents
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
Database Distribution
• Provisioning overhead
• Data isolation
• Content storage• Query locks
and throttling
• Utilization• Recoverability
• Resource Consumption
• Availability
System Services
Site CollectionsLists
Database Fundamentals
Physical hardware resources
Network connectivity
Disk specifications
File location
Index maintenance
High availability
Request Management
• SharePoint aware rule based traffic shaping• Throttling• Routing• Prioritization• Load Balancing
Request Management Modes
Integrated Dedicated
Request Management Components
Machine Pool
RoutingTarget
RoutingTarget Execution Group
Throttling Rules
HealthWeight
StaticWeight
HealthWeight
StaticWeight
RoutingRule
RoutingRule
RoutingRule
RoutingRule
Request Management Rules
Throttling RulesRule1
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
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
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
Distributed Cache
• Independent cache• No database persistence• Configurable memory allocation• Dedicated or collocated
Distributed Cache Dependencies
LoginTokenCache
AccessCache
Feeds(Activities,Likes,Mentions,Doc
Actions)
SearchQuery
Web Part
LastModifiedCache
SecurityTrimming
Cache
OneNoteThrottling
AppTokenCache
View StateCache
DefaultCache
Distributed Cache GuidelinesDeployment size Small farm Medium farm Large farm
Total number of users < 10,000 < 100,000 < 500,000
Recommended 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
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
User Interface
• Client-side rendering• Optimized markup• Minimal download• Image renditions• Device Channels• Content by search
Customizations
Page Components
• Markup• Navigation• Images• Scripts• Code• Web and App
Parts
Branding
• Styles• Resources• Master Pages• JavaScript
Injection
Page Components
Page
Page
Master Page
Layout Page
NavigationControls
PermissionsMenu
OptionsWebParts
Data Sources
File System
Database External
Minimal Download
2010Page 1Controls
Chrome
Content
Page 2Controls
Chrome
Content
First Request
Second Request
2013Page 1
Controls
Chrome
Content
Page 2Controls
Chrome
Content
Dow
nloa
dMan
ager
Dow
nloa
dMan
ager
First Request
Second Request
Page Rendering
2010 2013
Page Weight
2010
29 Requests / 570KB
2013
21 Requests / 321KB
Office 365
MasterPage
Scripts
Branding
StyleAssets
ContentQuery
ContentSearch
ListViews
Apps
Navigation
StuffYou
Can’t Control
thank youquestions?
live ratingsBLOG URLTWITTER HANDLE
spca.biz/HHVA