Optimize SQL server performance for SharePoint

Post on 21-Jan-2018

132 views 2 download

transcript

SharePoint Saturday Montreal#SPSMontreal

May 13th 2017

SharePoint Saturday

Montreal

Rendre son SharePoint 2013/2016 extrêmement rapide en monitorant & optimisant SQL ServerSerge Luca & Isabelle Van Campenhoudt

ShareQL

SharePoint Saturday Montreal#SPSMontreal

Go

ld

Bro

nze

Thanks to our sponsors !

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

Serge Luca

Serge Luca

10 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

Credits

Serge Luca

Accidental DBA

IsabelleVan Campenhoudt

SQL guru

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

99.9% 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 has several databases; >20 if spousal installation

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

Optimize Hardware

CPU RAM DISK Network

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)

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

• As part of capacity plan• Determine how much GB you need• Talk to the SAN team

Because…

Database name IOPS requirements Typical load on I/O

subsystem. Optimization

TempDB High 2 IOPS/GB Write

Content DB High

0.5-0.75 IOPS/ GB (4

TB supported:

0.25IOPS/GB , ideally:

2 IOPS/GB)

Read

Transaction Log High 2 IOPS/GB Write

Search Crawl database Medium to high IOPS

10 IOPS per 1

document per second

(DPS) crawl rate.

Write

Search Link database Medium IOPS

10 IOPS per 1 million

items in the search

index.

Search administration

databaseLow IOPS Not applicable.

Search Analytics

reporting databaseMedium IOPS Not applicable.

• IOMeter (free)

• SQLIO (free)

• …

• In production : be careful

• Test with a file > than SAN cache

• Test reading/writing , random 64k (for data)and sequential (for transaction log)

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

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

Don’t install SSMS on the SQL Server computer

Use named instances

\ SharePointUse a dedicated

instance

Run the service with a Managed account

No specificpermission

Latin1_General_CI_AS_KS_WS (for SharePoint databases)

(Any CI collation is supported for tempDBs, master, but Latin1_xxx_ is recommended)

SP uses this collation when itcreates its own db

Cannot be changed after the setup !!!

Max degree of parallelism

Maxdop=1

Specify memory limits

Backups

Compression

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

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

System databases

Master : similar to the SP configDB

Model : templatefor other dbs

Tempdb : temporarily results

Msdb : for automation

User databases The SharePoint databases

.MDF.LDFAddContent

Content Database

Checkpoint

instructions

instructions

Simple Recovery Model

.LDF

Data

Data

.MDFAddContent

Content Database

Checkpoint

instructions

instructions

Full Recovery Model (Recommended)

Data Files and Log files should be on different drives (and not the System drive)

Model db : recoverymodel = full

Tempdb : recovery model = simple

SharePoint DB : recoverymodel ?

Contend DB = full Config DB= simple

Services App DBs= itdepends :

• http://technet.microsoft.com/en-us/library/cc678868.aspx

Always On Availability groups: recovery = full !

(UAT & Production)

Developer Workstation /Test Farm: recovery = simple!

Increase Initial sizeIncrease Autogrowth

(MB , not %)

Don’t modify Model dbcollation Full Recovery Model

Configure Tempdb files

•#files = #cores

• (on sql server 2012 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

Priority (Fastest to Slowest Drive)

Tempdb Data and Transaction Log Files

Content DataBaseTransaction 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

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

Setup account(sp-install)

Must be:(SQL Server)

DBcreator(SQL Server) Securityadmin

Local admin Domain account

Farm has several databases; >20 if spousal installation

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

Job will defragment the indices

If fragment > 30% &

rowcount > 10.000

Job will update statistics

AUTO_CREATE_STATISTICS

OFF

DBCC CheckDB

Check REPAIR_REBUILD Option to Fix Errors (Not

Always Possible)REPAIR_ALLOW_DATA_

LOSS Not Supported

Time Consuming Operation, Run During

Non-Peak Hours

For Very Large DBs consider using option

MAXDOP=1

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

CPU

I/O (Iometer is a tool to check your SAN)

Network

Memory

Run a trace of Performance Counters (24 hours)

Provides templates of accuratecounters

Analyse regarding thresholds

Generate meaningfull reports

Use PAL (free)

(« Performance Analysis of Logs ») or SCOM

Use this trace as a baseline!!!

In production (live) Or Use Visual Studio (for Web performance Tests, simulate actions, number of users)

Counters: Should be:

Memory: Available Bytes At least 4 GB for the system

Logical Disk: Disk Reads/sec Between 15 and 25 ms

Logical Disk: Disk Writes/sec 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%

SQLServer: Buffer Manager: Page life

expectancy

> 300 sec (but do a baseline)

38

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

Basic SharePoint DB concepts

Operating System settings

SQL Server configuration

Databases configuration

SharePoint and SQL Server integration concepts

SQL Server optimization

HA and DR : Always On Availability Groups & SP 2013

SQL 1

FARM 1

SQL 2

High Availabilty

Synchronous

SQL 1

FARM 1

SQL 2

SynchronousHigh Availabilty

Database Supported

Admin Content Yes

App Management Yes

BDC Yes

Config Yes

Content Yes

Managed Metadata Yes

PerformancePoint Yes

PowerPivot Not Tested

Project Yes

Search Analytic Reporting Yes

Search Admin Yes

Database Supported

Search Crawl Yes

Search Links Yes

Secure Store Yes

State Service Yes

Subscription Settings Yes

Translation Services Yes

UPA Profile Yes

UPA Social Yes

UPA Sync Yes

Usage(=loggingDB) Yes – NR

Word Automation Yes

SQL 1

FARM 1

SQL 2

FARM 2

SQL 3

Asynchronous

DisasterRecovery

Synchronous

Database Supported

Admin Content No

App Management Yes

BDC Yes

Config No

Content Yes

Managed Metadata Yes

PerformancePoint Yes

PowerPivot Not Tested*

Project Yes

Search Analytic Reporting No

Search Admin No

Database Supported

Search Crawl No

Search Links No

Secure Store Yes

State Service No

Subscription Settings Yes

Translation Services Yes

UPA Profile Yes

UPA Social Yes

UPA Sync No

Usage Yes – NR

Word Automation Yes

SharePoint Saturday Montreal#SPSMontreal

5h00 PM

3971 Ontario E

Merci !

@thesqlgrrrl @sergeluca