Upload
serge-luca
View
36
Download
0
Embed Size (px)
Citation preview
Make your SharePoint Flyby Tuning & Optimizing SQL Server
Serge Luca, Isabelle Van Campenhoudt
ShareQL, Belgium
Add Speaker
Photo here
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
Serge Luca
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/
@thesqlgrrrl
Isabelle Van Campenhoudt
globalfrench.sqlpass.org
Credits
Serge Luca
Accidental DBA
IsabelleVan Campenhoudt
SQL guru
Agenda
Agenda
Explain Basic Concepts
Plan for long term performance
Optimal Configuration
Maintenance
Measure & Improve
Conclusions
Explain
Plan
Configure
Maintain
Measure
Basic Concepts
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
SQL Server basic concepts
System databases
Master : similar to the SP configDB
Model : templatefor other dbs
Tempdb : temporarily results
Msdb : for automation
User databases The SharePoint databases
Explain
Source : Brian Alderman, modified
.MDFCheckpoint.LDF
Data
Data
Simple Recovery Model
AddContent
Content Database
instructions
instructions
Explain
.MDFCheckpoint.LDF
Data
Data
Full Recovery Model
AddContent
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 <drive>to Verify
Use Format to Configure:
• Format <drive> /Q /FS:NTFS /A:64K /V:<volume> /Y
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 !!!
Disks: Volume but also IOPS
Because they need to know…
As part of capacityplan
Determine how manyGB you need
->Talk to the DBA & Capacity Manager
Determine how muchIOPS you need
->Talk to the SAN team
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
Databases consume disk throughputDatabase 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 High0.5-0.75 IOPS/GB 4 TB supported: 0.25 IOPS/GB , ideally: 2 IOPS/GB
Read
Search Crawl database Medium to high10 IOPS per 1 document per second (DPS) crawl rate.
Write
Search Link database Medium10 IOPS per 1 million items in the search index.
Search Analytics
reporting database Medium Not applicable.
Search administration
databaseLow Not applicable.
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)
Installation & Configuration
Installing SQL ServerFor 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
\ SharePointUse a dedicated instance
Run the service with a Managed account
No specific permission,
Use SQL configuration manager ---IFI
Collation settings
Latin1_General_CI_AS_KS_WS
for SharePoint databases
Any CI collation is supportedfor tempDBs, master Latin1_xxx_ is recommended
SP uses this collation when itcreates its own db
Cannot be changed after the setup !!!
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 becreated (and documented) by a DBA after a strict capacity plan
Recovery – related to your RPO & Backups
Model db : recoverymodel = template
Tempdb : recoverymodel = simple
SharePoint DB : recovery model ?
Contend DB = full
Config DB= simple
Services App DBs= itdepends :
• http://technet.microsoft.com/en-
us/library/cc678868.aspx
UAT & Production
Always On Availability groups: recovery = full !
Developer Workstation /Test Farm:
recovery = simple!
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
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
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
Installing SharePoint
Setup account
(sp-install)
Must be:(SQL Server)
DBcreator
(SQL Server)
Securityadmin
Local admin (SP Machines only) Domain account
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
Maintenance
SharePoint: Health Analyzer
Job will defragment the indices
If fragment > 30% & rowcount > 10.000
Job will update statistics
AUTO_CREATE_STATISTICS OFF
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
Tools & Troubleshooting
Measuring is the key
Measure the compliance
Measure the performance
Measure the compliance
SQL configuration
Disks placements
Databases configuration
Correct maintenance
SPDOCKITSYSKITSQL Policies& Custom ReportingKANKURUMicrosoft BPACustom PowerShellDBA ToolsExtended Properties
Measure the performanceCPU
I/O
Network
Memory
Run a trace of Performance Counters (24 hours)
Provides templates of accuratecounters
Analyse regarding thresholds
Generate meaningfull reports
Map Toolkit
Performance Analysis of Logs (PAL)
SCOM
You need a Baseline
Principal SQL Counters to measureCounters: 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)
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
•Notifications• Adapt
• Reactions• Have a strong reaction chain
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://www.sqlskills.com/blogs/glenn/sql-server-diagnostic-information-queries-for-november-2017/
• https://www.spdockit.com/
• https://www.syskit.com/
Merci !
• @thesqlgrrrl @sergeluca