Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Make your SharePoint Fly
by Tuning & Optimizing SQL Server
Serge Luca, Isabelle Van Campenhoudt
ShareQL, Belgium
Add
Speak...
Serge Luca
Serge Luca
11 x SharePoint MVP, Brussels
Consultant, speaker, trainer
Managing partner of www.ShareQL.com
Share...
Isabelle Van Campenhoudt
Isabelle Van
Campenhoud
t
SQL Server MVP, Brussels
Consultant, speaker, trainer, PASS V-Chapter L...
Credits
Serge Luca
Accidental DBA
Isabelle
Van Campenhoudt
SQL guru
Agenda
Agenda
Explain Basic Concepts
Plan for long term
performance
Optimal Configuration
Maintenance
Measure & Improve
Conclusio...
Basic Concepts
SharePoint databases
100% of SharePoint content
stored in SQL Server
Farm Configuration information
stored in configuratio...
SQL Server basic concepts
System
databases
Master : similar to
the SP configDB
Model : template
for other dbs
Tempdb :
tem...
.MDFCheckpoint.LDF
Data
Data
Simple Recovery Model
Add
Content
Content Database
instructions
instructions
Explain
.MDFCheckpoint.LDF
Data
Data
Full Recovery Model
Add
Content
Content Database
instructions
instructions
Explain
Plan for long term
performances
Optimize Resources
CPU RAM DISK Network
Quick Win : NTFS Allocation Unit Size
64K is optimal, 4K =
30% Performance
Penalty (data files, not
log files)
Use chkdsk ...
Must Win: Network latency
Network (dedicated
subnet for SQL)
Latency between web
front ends and SQL
Server
• Mandatory for...
Disks: Volume but also IOPS
Because they need to know…
As part of capacity
plan
Determine how many
GB you need
->Talk to t...
Content DB volume & Site Collections
Site Collections only
reside in one database
Content database
contains multiple site
...
Databases consume disk throughput
Database files IOPS requirements Typical load on I/O subsystem. Optimization
TempDB High...
How can you check if you SAN support these IOPS ?
• IOMeter (free)
• SQLIO (free)
• Discuss with SAN team …
• In producti...
Installation & Configuration
Installing SQL Server
For SharePoint 2013:
• SQL Server 2008 R2 SP1
• SQL Server 2012 (SP1 for BI)
• SQL Server 2014 (SP20...
Collation settings
Latin1_General_CI_AS_KS_WS
for SharePoint databases
Any CI collation is supported
for tempDBs, master
L...
Server Properties
Max degree of
parallelism
Maxdop=1
Memory Limits
Specify memory limits
Tips
Use alias for the connection string
• Client alias or DNS alias (preferred)
Good practice : every SP Content db must ...
Recovery – related to your RPO & Backups
Model db : recovery
model = template
Tempdb : recovery
model = simple
SharePoint ...
Model DB settings is the template
Increase Initial size Increase Autogrowth
(MB , not %)
TempDB settings : crucial
Configure Tempdb files
 #files = #cores
 Max 8 if #cores > 8
 Same size for every file
Config...
Files placement
Priority (Fastest to Slowest Drive)
 Tempdb Data and Transaction Log
Files
 Content DataBase Transaction...
Installing SharePoint
Setup account
(sp-install)
Must be:
(SQL Server)
DBcreator
(SQL Server)
Securityadmin
Local admin (S...
Using SQL Server Resource Governor to optimize
Search Database usage
Part of SQL Server Enterprise
(since SQL 2008)
Limits...
Maintenance
SharePoint: Health Analyzer
Job will defragment the indices
If fragment > 30% &
rowcount > 10.000
Job will update statisti...
DBA: Verify Integrity of databases
DBCC CheckDB
Check REPAIR_REBUILD
Option to Fix Errors (Not
Always Possible)
REPAIR_ALL...
Tools & Troubleshooting
Measuring is the key
Measure the
compliance
Measure the
performance
Measure the compliance
SQL
configuration
Disks
placements
Databases
configuration
Correct
maintenance
SPDOCKIT
SYSKIT
SQL ...
Measure the performance
CPU
I/O
Network
Memory
Run a trace of
Performance
Counters (24 hours)
 Provides templates of ...
Principal SQL Counters to measure
Counters: Should be:
Memory: Available Bytes At least 4 GB for the system
Logical Disk: ...
Performances interpretation (source : PAL)
Stress your system to not have it stress you
A Dashboard is useful
TIP:
I use SQL Diagnostic
Queries queries in
Power BI
Monitor your System on a daily basis
• Continuous monitor
• Rely on SQL monitoring
• Less is More
• Stick to the basics
• ...
Conclusions
Conclusions
Explain
Plan
Configure
Maintain
Measure
Build strong relations with:
 DBA
 SAN
 Network
 Monitoring Team
Useful links
• http://www.iometer.org/
• https://dbatools.io/
• http://kankuru.com/
• https://pal.codeplex.com/
• https://...
Merci !
• @thesqlgrrrl @sergeluca
Make your SharePoint  fly by tuning and optimizing SQL Server
Upcoming SlideShare
Loading in …5
×

Make your SharePoint fly by tuning and optimizing SQL Server

138 views

Published on

European SharePoint Conference 2017 session with serge luca and Isabelle Van Campenhoudt

Published in: Software
  • Be the first to comment

  • Be the first to like this

Make your SharePoint fly by tuning and optimizing SQL Server

  1. 1. Make your SharePoint Fly by Tuning & Optimizing SQL Server Serge Luca, Isabelle Van Campenhoudt ShareQL, Belgium Add Speaker Photo here
  2. 2. Serge Luca Serge Luca 11 x SharePoint MVP, Brussels Consultant, speaker, trainer Managing partner of www.ShareQL.com SharePoint since 2001 Blog: http://sergeluca.wordpress.com/ sergeluca@ShareQL.com @SergeLuca Serge Luca
  3. 3. Isabelle Van Campenhoudt Isabelle Van Campenhoud t SQL Server MVP, Brussels Consultant, speaker, trainer, PASS V-Chapter Leader Managing partner de www.ShareQL.com SQL Server since 1999 Blog: http://thesqlgrrrl.wordpress.com/ ivc@ShareQL.com @thesqlgrrrl Isabelle Van Campenhoudt globalfrench.sqlpass.org
  4. 4. Credits Serge Luca Accidental DBA Isabelle Van Campenhoudt SQL guru
  5. 5. Agenda
  6. 6. Agenda Explain Basic Concepts Plan for long term performance Optimal Configuration Maintenance Measure & Improve Conclusions Explain Plan Configure Maintain Measure
  7. 7. Basic Concepts
  8. 8. SharePoint databases 100% of SharePoint content stored in SQL Server Farm Configuration information stored in configuration db Central Administration content stored in own content db Most Service Applications have at least one db All Web Applications have at least one content db Farm can have many databases : >20 Explain Source : Brian Alderman, modified
  9. 9. SQL Server basic concepts System databases Master : similar to the SP configDB Model : template for other dbs Tempdb : temporarily results Msdb : for automation User databases The SharePoint databases Explain Source : Brian Alderman, modified
  10. 10. .MDFCheckpoint.LDF Data Data Simple Recovery Model Add Content Content Database instructions instructions Explain
  11. 11. .MDFCheckpoint.LDF Data Data Full Recovery Model Add Content Content Database instructions instructions Explain
  12. 12. Plan for long term performances
  13. 13. Optimize Resources CPU RAM DISK Network
  14. 14. Quick Win : NTFS Allocation Unit Size 64K is optimal, 4K = 30% Performance Penalty (data files, not log files) Use chkdsk <drive>to Verify Use Format to Configure: • Format <drive> /Q /FS:NTFS /A:64K /V:<volume> /Y
  15. 15. Must Win: Network latency Network (dedicated subnet for SQL) Latency between web front ends and SQL Server • Mandatory for stretched farm, but good practice: • < 1 ms during10 minutes (1% failure max) • 1 Giga bits / sec • Recommended if mirroring or Always On Sync (see later) Use Alex Strachan PowerShell scripts !!!
  16. 16. Disks: Volume but also IOPS Because they need to know… As part of capacity plan Determine how many GB you need ->Talk to the DBA & Capacity Manager Determine how much IOPS you need ->Talk to the SAN team
  17. 17. Content DB volume & Site Collections Site Collections only reside in one database Content database contains multiple site collections (2,000 Default Setting) If Site Collection > 100GB store in own content database •Soft limit maximum size <= 200 GB
  18. 18. Databases consume disk throughput Database files IOPS requirements Typical load on I/O subsystem. Optimization TempDB High 2 IOPS/GB Write Transaction Log High 2 IOPS/GB Write Content DB High 0.5-0.75 IOPS/GB 4 TB supported: 0.25 IOPS/GB , ideally: 2 IOPS/GB Read Search Crawl database Medium to high 10 IOPS per 1 document per second (DPS) crawl rate. Write Search Link database Medium 10 IOPS per 1 million items in the search index. Search Analytics reporting database Medium Not applicable. Search administration database Low Not applicable.
  19. 19. How can you check if you SAN support these IOPS ? • IOMeter (free) • SQLIO (free) • Discuss with SAN team … • In production: resource intensive • Test with a file > than SAN cache • Test reading/writing , random 64k (for data)and sequential (for transaction log)
  20. 20. Installation & Configuration
  21. 21. Installing SQL Server For SharePoint 2013: • SQL Server 2008 R2 SP1 • SQL Server 2012 (SP1 for BI) • SQL Server 2014 (SP2013 SP1 & April CU) For SharePoint 2016: • SQL Server 2014 • SQL Server 2016 • SQL Server 2017 (Win) Don’t install SSMS on the SQL Server computer Use named instances SharePoint Use a dedicated instance Run the service with a Managed account No specific permission, Use SQL configuration manager ---IFI
  22. 22. Collation settings Latin1_General_CI_AS_KS_WS for SharePoint databases Any CI collation is supported for tempDBs, master Latin1_xxx_ is recommended SP uses this collation when it creates its own db Cannot be changed after the setup !!!
  23. 23. Server Properties Max degree of parallelism Maxdop=1
  24. 24. Memory Limits Specify memory limits
  25. 25. Tips Use alias for the connection string • Client alias or DNS alias (preferred) Good practice : every SP Content db must be created (and documented) by a DBA after a strict capacity plan
  26. 26. Recovery – related to your RPO & Backups Model db : recovery model = template Tempdb : recovery model = simple SharePoint DB : recovery model ? Contend DB = full Config DB= simple Services App DBs= it depends : • http://technet.microsoft.com /en- us/library/cc678868.aspx UAT & Production Always On Availability groups: recovery = full ! Developer Workstation /Test Farm: recovery = simple!
  27. 27. Model DB settings is the template Increase Initial size Increase Autogrowth (MB , not %)
  28. 28. TempDB settings : crucial Configure Tempdb files  #files = #cores  Max 8 if #cores > 8  Same size for every file Configure Tempdb Size  At Least 10% of Biggest Content DB’s Size Tempdb Database Settings  Increase Initial Size Setting  Increase Autogrowth Settings (Use MB Not %)  Use Simple Recovery Model  Place on Different Drive Than Content Databases
  29. 29. Files placement Priority (Fastest to Slowest Drive)  Tempdb Data and Transaction Log Files  Content DataBase Transaction Log Files  Search Database Data Files  Content Database Data Files Use Multiple Data Files for Content and Search DB’s  Distribute Equally-Sized Data Files Across Separate Disks  Number of Data Files Should Be <= Number of Processor Cores
  30. 30. Installing SharePoint Setup account (sp-install) Must be: (SQL Server) DBcreator (SQL Server) Securityadmin Local admin (SP Machines only) Domain account
  31. 31. Using SQL Server Resource Governor to optimize Search Database usage Part of SQL Server Enterprise (since SQL 2008) Limits CPU and memory usage on some DBs (and IO in SQL Server 2014) • like search DBs Allow less CPU & mem & IO usage during work hours Allow more CPU & mem & IO usage during off hours
  32. 32. Maintenance
  33. 33. SharePoint: Health Analyzer Job will defragment the indices If fragment > 30% & rowcount > 10.000 Job will update statistics AUTO_CREATE_ STATISTICS OFF
  34. 34. DBA: Verify Integrity of databases DBCC CheckDB Check REPAIR_REBUILD Option to Fix Errors (Not Always Possible) REPAIR_ALLOW_DATA _LOSS Not Supported Time & Resource Consuming Operation, Run During Non-Peak Hours For Very Large DBs consider using option MAXDOP=1
  35. 35. Tools & Troubleshooting
  36. 36. Measuring is the key Measure the compliance Measure the performance
  37. 37. Measure the compliance SQL configuration Disks placements Databases configuration Correct maintenance SPDOCKIT SYSKIT SQL Policies & Custom Reporting KANKURU Microsoft BPA Custom PowerShell DBA Tools Extended Properties
  38. 38. Measure the performance CPU I/O Network Memory Run a trace of Performance Counters (24 hours)  Provides templates of accurate counters  Analyse regarding thresholds  Generate meaningfull reports  Map Toolkit  Performance Analysis of Logs (PAL)  SCOM You need a Baseline
  39. 39. Principal SQL Counters to measure Counters: Should be: Memory: Available Bytes At least 4 GB for the system Logical Disk: Disk sec/Read Between 15 and 25 ms Logical Disk: Disk sec/Write Between 15 and 25 ms Process: cpu/working set/io SQLsrve.exe % other processes Processor Max 40% SQL Server: Buffer Manager: Buffer Cache Hit Ratio >97% SQL Server: Buffer Manager: Page life expectancy > 300 sec (but do a baseline)
  40. 40. Performances interpretation (source : PAL)
  41. 41. Stress your system to not have it stress you
  42. 42. A Dashboard is useful TIP: I use SQL Diagnostic Queries queries in Power BI
  43. 43. Monitor your System on a daily basis • Continuous monitor • Rely on SQL monitoring • Less is More • Stick to the basics • Notifications • Adapt • Reactions • Have a strong reaction chain
  44. 44. Conclusions
  45. 45. Conclusions Explain Plan Configure Maintain Measure Build strong relations with:  DBA  SAN  Network  Monitoring Team
  46. 46. Useful links • http://www.iometer.org/ • https://dbatools.io/ • http://kankuru.com/ • https://pal.codeplex.com/ • https://www.sqlskills.com/blogs/glenn/sql-server- diagnostic-information-queries-for-november-2017/ • https://www.spdockit.com/ • https://www.syskit.com/
  47. 47. Merci ! • @thesqlgrrrl @sergeluca

×