Make your SharePoint fly by tuning and optimizing SQL Server

Post on 21-Jan-2018

35 views 0 download

Transcript of Make your SharePoint fly by tuning and optimizing SQL Server

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@ShareQL.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/

ivc@ShareQL.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