This document provides an overview of performance optimization techniques for SharePoint and Office 365. It begins with introductions from two presenters, Patrick Guimonet and Gokan Ozcifci. The document then covers topics like Windows Server configuration, SQL Server optimization, search performance, and Office 365 network performance. Specific techniques discussed include adjusting page file size, SQL Server memory settings, search component placement, and measuring Office 365 round trip time. The goal is to provide attendees with methods for improving the performance of their SharePoint and Office 365 environments.
3. Office Servers and Services
MVP ( for the 6th time)
Microsoft Regional Director
Hi, I’m Patrick.
Paris, France
Enterprise Solutions
Architect at Abalon
International
aOS community @patricg
Blogger
https://yos365. wordpress.com
#SPSNL 2016Designed by @xGokan
4. Hi, I’m Gokan.
Brussels, BELGIUM neoxy.be
Most Valuable
Professional
MCT Regional Lead @xGokan http://gokan.ms
#SPSNL 2016
6. According to Microsoft: there are a few methods available
to minimize the amount of downtime; however it’s just not
possible to achieve a zero downtime solution for your
upgrade. A common way to minimize downtime is via
implementation of a parallel upgrade farm.
I’ve the best topologie…
#SPSNL 2016
7. Your job has changed
It’s up to you to manage all components
#SPSNL 2016
9. Windows Server | Performance
Windows Server performance options
Computer > Properties > Advanced
system settings > Performance > Settings
> Visual Effects
#SPSNL 2016
10. Windows Server | Page File
Determine page file size
Factor 1,5 of the server RAM. Ex:
8192 MB RAM x 1,5 = 12288 MB page
file
#SPSNL 2016
11. Windows Server | Power Options
Use the proper power plan | High
Performance
Start > Control Panel > Power Options
#SPSNL 2016
12. System, Log and Index files:
C:
G:
H:
Reduce Disk I/O
System
Index
Logs
#SPSNL 2016
13. Latency between servers should be less than 1ms
Host all the servers in the same datacenter.
/! If the datacenter has a problem, your SharePoint farm can be down /!
Use a real Load Balancer
N+1
Importance of a Load Balancer
#SPSNL 2016
19. SQL Server Collation
Dedicated SQL Server
For optimal performance when operating server farms, we recommend that you install SQL
Server 2008 R2 with SP1 and SQL Server 2012 on a dedicated server that is not running other
roles of farm and n 'not host databases for other
Collation:
Latin1_General_CI_AS_KS_WS
#SPSNL 2016
20. SQL Server NTFS
NTFS Allocation Unit Size: 64K
SQL reads and writes 64K at a time, but your disk allows only 4K by
default. This change alone may show you up to 30% improvement in
speed.
• Cannot be changed after wise.
• Format disk is necessary.
• “chkdsk [DRIVE]”.
• Move the LDF and MDFs to another drive.
Vlad Catrinescu SQL Server eBook
#SPSNL 2016
21. Set min. and max. Server
/! Total amount memory x 0,80 /! The default value of SQL Server for Maximum
Memory is : 2147483647 MB
Maximum fill factor per index (80%)
Autogrowth in MB and not %
Activate backup compression
It’s faster and needs less disks space
Max Degree of Parallelism (MAXDOP) = 1
Prerequisite for SharePoint 2013/2016
SQL Server options
#SPSNL 2016
22. 0 – Comply with CPU and memory
1 – Page file
3 – Disks
3.1 Allocation size
3.2 Alignment
2 – Power option « high perf. »
4.1 A dedicated server
4.2 RBS only if needed
4.3 Use an alias
5 – Instance parameters
5.1 Collation
5.2 Installation directory
5.3 Memory limits
5.4 Backup compression
5.5 Default directory
5.6 MAXDOP = 1
6 – System DBs
5.1 TEMPDB
5.2 MODEL
6 – SharePoint DBs
6.1 Autogrowth
6.2 Recovery option
6.3 Auto*
#SPSNL 2016From @patricg
24. Web Application tier
• Set Quotas on all Web Applications
• Disable Certificate Revocation List
• Authentication
Anonymous, Claims, Kerberos, NTLM, Forms, ADFS
• Wake-Up
• Scripts, WAF F5, AppDynamics
• Only extend if you have a different authentication
protocol.
200 GB
Fastest to slowest
Limitation of Application Pools
#SPSNL 2016
25. Web Application Tier
• 10 Application Pools (can be extended depending
hardware)
• 20 web Applications per SharePoint Farm
• CRUD operations can cause downtime if more than 20
• http://gokan.azurewebsites.net/2016/02/27/sharepoint-2016-quand-iis-server-
fait-un-stopstart-sur-vos-application-pool-a-chaque-manipulation-sur-
lapplication-web/
#SPSNL 2016
26. SharePoint Server
Distribute the load on multiple crawl servers
• If enterprise search is used /!
Adjust crawling schedule
• Search driven websites are not as critical as Public facing websites.
Content Crawling
• Group by
• Crawl outside business hours
• Days & Weekends
#SPSNL 2016
28. Components Placement
Search is the most resource intensive SharePoint service
For Enterprise search env. what we do is:
• CPC & APC
• Admin & Crawl
• Index & Query
Together on one server
Together on second server
Together on third server
Credits Thomas Vochten Search Session #SPSNL 2016
29. Performance Level Explained
Reduced
PartlyReduced
Maximum
By default
Total number of threads
= 16 times the number
of processors
Set-SPEnterpriseSearchService -PerformanceLevel Reduced
Total number of threads = number of processors
Total number of threads = 4 times the number of processors
#SPSNL 2016
30. Take advantage of caching
Distributed cache
Object cache
Output cache
Blob cache
provides caching functionality to features (Authentication,
Page Load…)
Is used internally store properties of sites, page layouts, and
pages. reduces the amount of traffic between the WFE and
SQL
Stores rendered output of all controls on a given page, and it
also stores several different versions of this pre-rendered
page.
Disk-based cache that stores files that are used by web pages
to help them load quickly in the browser, and reduces the
load on the database server when it uses those files.
https://karinebosch.wordpress.com/
#SPSNL 2016
31. Logical decomposition
Stop unnecessary services / Install only what you need
• Product Configuration Wizard, SQL Server Installation…
Separate user and database traffic
Create a Maintenance Plan
IIS compression Between 0 and 10
Index degrafmentation
2 NICs
#SPSNL 2016
32. Antivirus Check your Real time
scan &
Exclusions = /15
Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions
Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15Logs
Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15DataApplications
#SPSNL 2016
33. Using BranchCache to optimize WAN
performance
BranchCache is a feature of the Windows 7, 8, Windows Server 2008 R2 and 2012
Valuable in a geographically distributed SharePoint Server 2013 environment
• OneDrive for Business, OneNote, Word, Excel, Visio, PowerPoint
F(x) = Every time a branch office user requests a cached file from SharePoint Server 2013, BranchCache checks to
see if a more recent file exists on the server. If not, BranchCache will serve the cached version of the file.
Will optimize WAN performance by caching large files
#SPSNL 2016
34. SharePoint Health Score and Throttling
Health Score Between 0 and 10, where 0 is the healthiest value
#SPSNL 2016
35. SharePoint Health Score and Throttling
Health Score
Every HTTP Request, creates a threat and every threat
calculates the value within the 5 seconds
Between 0 and 10, where 0 is the healthiest value
#SPSNL 2016
36. SharePoint Health Score and Throttling
Health Score
Every HTTP Request, creates a threat and every threat
calculates the value within the 5 seconds
Get-SPWebApplicationHttpThrottlingMonitor
11 Buckets
Between 0 and 10, where 0 is the healthiest value
Between 0 and 10
#SPSNL 2016
37. SharePoint Health Score and Throttling
Add a new category
Add an array of buckets
#SPSNL 2016
38. SharePoint Health Score and Throttling
You can enable/disable the throttling via CA
If the server can’t handle the requests
#SPSNL 2016
40. MinRole
• In SharePoint 2013, the Distributed Cache size is set to half
of ten percent of the total RAM on the server
• 8Gb RAM, the Cache Size (the allocation for data storage) is 410Mb.
• In SharePoint 2016, the Distributed Cache size is set to half
of 80 percent of the total RAM
• so on a Server with 8Gb this will be 3276Mb.
http://www.harbar.net/archive/2016/04/15/SharePoint-2016-Nugget-2-Distributed-Cache-Size-in-MinRole-Farms.aspx #SPSNL 2016
41. The top 5 performance killers are:
Indexing and crawling
SQL / SharePoint Backup
Think cloud mon
Backend Applications
Storage state
After Business hours if possible
After Business hours
Before Business Hours and once
To be monitored
Everything is behind the NAS/SAN
#SPSNL 2016
43. Infrastructure should
be configured
following best
practices and fully
tuned
Application code and
logic should always
be checked, and
optimized – this is
where we can find the
greatest improvements
Local network access is
usually not an issue
even if its configuration
is sub-optimal
Infrastructure is fully
tuned and
optimized by
Microsoft
Application code and
logic should always
be checked, and
optimized – this is
where we can find the
greatest improvements
Network access is
critical and should
be checked, and
optimized if
necessary
#SPSNL 2016
46. Microsoft internal worldwide network
is one of the top 3 in the world with
public peering in 23 countries with
over 2000 ISPs.
Multi-terabits of capacity.
Data transfers using that network is
much better than through the Internet.
For example between Office 365 and
Azure.
#SPSNL 2016
47. 7
14
51
4 5
16
0
10
20
30
40
50
60
6 MB file 10 MB file 42 Mb file
Upload time to an Office 365
tenant based in Dublin
From a Stockholm PC From an Azure WM
Test 2 : From a VM
hosted in Azure North
Europe Region
Test 1 : From a PC in
Stockholm
#SPSNL 2016
51. #SPSNL 2016
Site data is published at
http://www.peeringdb.com/view.php?asn=8075
Some cities have multiple peering points
Peering locations may be on-net or off-net
Peering may involve physical connection
and/or routing advertisements
Data as of July 2014 is subject to change
Brisbane Australia
Melbourne Australia
Perth Australia
Sydney Australia
Vienna Austria
Luxembourg Luxembourg
Sao Paulo Brazil
Montreal Canada
Toronto Canada
Prague Czechoslovakia
Paris France
Frankfurt Germany
Hong Kong Hong Kong
Dublin Ireland
Milan Italy
Turin Italy
Tokyo Japan
Seoul Korea
Kuala Lumpur Malaysia
Amsterdam Netherlands
Auckland New Zealand
Wellington New Zealand
Moscow Russia
Singapore Singapore
Stockholm Sweden
Zurich Switzerland
Taipei Taiwan
London UK
Ashburn USA
Atlanta USA
Boston USA
Chicago USA
Dallas USA
Denver USA
Honolulu USA
Las Vegas USA
Los Angeles USA
Miami USA
New York USA
Palo Alto USA
San Jose USA
Seattle USA
Ignite2015 BRK 2161
52. This topic lists current Microsoft Azure CDN point of presence (POP) locations.
https://azure.microsoft.com/en-us/documentation/articles/cdn-pop-locations/
#SPSNL 2016
55. • Round Trip Time (RTT) is the key indicator
of network connectivity performances
• There can be a lot of performance issues
regarding your network configuration…
• It can be wrong internally or externally
• OCPA tool is very good as a first check. It
will say if further investigation is needed
and where
https://support.office.com/en-us/article/Office-365-Client-Performance-Analyzer ...
#SPSNL 2016
57. Source: How to measure the Network Round Trip Time to Office 365 by Paul Collinge
Internal should be less than 100 ms, ideally 50 ms
EMEA to EMEA should be less than 150 ms
Outlook in cached mode can cope well with worse RTT
But for SharePoint 350 to 400 ms is the tipping between good and bad performances
aka Edge or Egress point
#SPSNL 2016
58. 1. Latency/Round Trip Time (RTT)
2. DNS Geo location
3. DNS performance
4. Proxy Scalability
5. Proxy Authentication
6. TCP Window Scaling
7. TCP Idle time settings
8. TCP Max Segment size
(Should be >= 1300)
9. Selective Acknowledgement
10. Application Level troubleshooting
Top 10 tips for optimizing and troubleshooting your
Office 365 network connectivity by Paul Collinge
#SPSNL 2016
59. Find and use the
fastest way to the
backbone
Identify Office
365 DC and Edge Check with OPCA
#SPSNL 2016
60. SharePoint Online Performances
Find this session and all others here:
http://fr.slideshare.net/Patricg
KLM and TU Delft propose long-distance aircraft featuring wings that merge with its body
http://www.dezeen.com/2015/07/29/klm-tu-delft-ahead-future-aircraft-blended-wing-body/
61. • F12 tool in the browser give access to the network
monitoring tool
• In SPO and SharePoint on-premises you can
access the information that is sent back to the
browser in the response header for each file. The
two most useful values for diagnosing performance
issues are:
SPRequestDuration
X-SharePointHealthScore
Diagnosing performance issues with SharePoint Online
https://support.office.com/en-us/article/Diagnosing-performance-issues-with-SharePoint-Online-3c364f9e-b9f6-4da4-a792-c8e8c8cd2e86
#SPSNL 2016
62. • Adapt navigation method
to your sites structure
OOTB structural navigation is the
most straightforward but can be
really slow with a complex
structure of multiple subsites
Managed metadata navigation is
much faster. However there is no
way to security trim the results so
if a user doesn’t have access to a
given site, the link will still show
but will lead to an error message.
Search-driven navigation can
also be used to get fastest loading
time but require some master
page customizations.
Navigation options for SharePoint Online
https://support.office.com/en-us/article/Navigation-options-for-SharePoint-Online-adb92b80-b342-4ecb-99a1-da2a2b4782eb
Structural navigation Managed navigation Search-driven navigation
Pros:
•Easy to configure
•Security-trimmed
•Automatically updates as sites
are added
Pros:
•Easy to maintain
Pros:
• Security-trimmed
• Automatically updates as sites
are added
• Fast loading time and locally
cached navigation structure
Cons:
•Can perform poorly with
complex site structure
Cons:
•Not automatically updated to
reflect site structure
Cons:
• No ability to easily order sites
• Requires customization of the
master page (technical skills
required)
#SPSNL 2016
63. • Adapt content rollup method to your needs
• From Slowest to Fastest
Content By Query web part (CQWP)
Content By Search web part (CSWP)
Static content
Static content in CDN (typically for popular
javascript and CSS assets)
• Using CDNs only makes sense in a
SharePoint Online context and should be
avoided with SharePoint Server 2013.
When to use the Content Query Web Part or the Content Search Web Part in SharePoint
https://support.office.com/en-us/article/When-to-use-the-Content-Query-Web-Part-or-the-Content-Search-Web-Part-in-SharePoint-346a0f48-38de-409b-
8a58-3bdca1768929?CorrelationId=6cd3bd08-b745-4611-b467-d6ddcb18d22b&ui=en-US&rs=en-US&ad=US
Using Content Search Web Part instead of Content Query Web Part to improve performance in SharePoint Online
https://support.office.com/en-us/article/Using-Content-Search-Web-Part-instead-of-Content-Query-Web-Part-to-improve-performance-in-SharePoint-Online-
e8ce6b72-745b-464a-85c7-cbf6eb53391b
#SPSNL 2016
64. Using the object cache with SharePoint Online
https://support.office.com/en-us/article/Using-the-object-cache-with-SharePoint-Online-38bc9c14-3826-449c-beb6-b1003bcbeaaf
#SPSNL 2016
65. • Use methods corresponding to files types
Images
• Image renditions allows you to serve up different versions of
images based on pre-defined image dimensions.
• Sprites are images that contain many smaller images. So you
download one image instead of several and then cache and
reuse it. Example: spcommon.png
• Lazy loading, using js, load only visible images when needed
Videos
• Office 365 Video Portal
Javascript
• Bundling and Minifying (via third party like Web Essentials)
• CDN
Tune SharePoint Online performance
https://support.office.com/en-us/article/Tune-SharePoint-Online-performance-f0522d4a-fbf4-41f9-854e-c9b59555091d
#SPSNL 2016
66. How to: Avoid getting throttled or blocked in SharePoint Online
https://msdn.microsoft.com/en-us/library/office/dn889829.aspx
SharePoint Online uses throttling to maintain optimal
performance and reliability of the SharePoint Online
service.
• Throttling limits the number of user actions or concurrent calls (by script
or code) to prevent overuse of resources.
• For requests that a user performs directly in the browser, SharePoint
Online redirects you to the throttling information page, and the requests
fail.
• For all other requests, including CSOM or REST calls, SharePoint Online
returns HTTP status code 429 ("Too many requests"), and the requests
fail.
• If the offending process continues to exceed usage limits, SharePoint
Online might completely block the process; in this case, you may see
HTTP status code 503 ("Service unavailable"), and we’ll notify you of the
block in the Office 365 Message Center. The error message is:
#SPSNL 2016