sharepoint performance

33
cis October 2013 Jeroen Schoenmakers N E W H O R I Z O N S SharePoint Performance

Upload: jeroen-schoenmakers

Post on 01-Jun-2015

507 views

Category:

Software


4 download

DESCRIPTION

Presentation around several tips & trick to improve SharePoint (on premise) performance, mainly by tweaking the SQL databases. Download the ppt for fun animations !

TRANSCRIPT

Page 1: SharePoint Performance

cis

October 2013

Jeroen Schoenmakers

N E W H O R I Z O N S

SharePoint Performance

Page 2: SharePoint Performance

Who am I ?

Jeroen Schoenmakers aka

@Shuwi

Linked in

15 years SQL DBA & .NET Dev experience

5 Years SharePoint experience

MCITP,MCTS

http://Schoennie.BlogSpot.com

Page 3: SharePoint Performance

Agenda (Slides will be available)

Who am I

Setting up SharePoint, performance gains

Preventing future performance issues

Optimize your current deployment

Trouble-Shooting SharePoint Performance issues

When do you have an issue ?

How to solve the issue ? (Methodology)

Case: Extremely slow uploads on extranet

Page 4: SharePoint Performance

How SharePoint uses SQL Server

One configuration DB per farm

Each web app has one or more content DBs

Container for site collections (scalable, SharePoint limits)

All SharePoint content, including files, is stored in content DB (Out of the box)

Service application databases

Search databases are usually most important when optimizing.

Page 5: SharePoint Performance

Example: Ivanhoe Production Farm (intranet)

Use master; select name from sys.databases

64 DatabasesDatabase size = (#Documents * #Versions) * Avg Size) + (10 KB * (#List items + (#Versions * #Documents)))

<<Graphic is removed from a public disclosure point of view>>

Page 6: SharePoint Performance

Choose the best architecture (for your situation)

Everything “depends” on your situation

1000 concurrent anonymous clients making web-purchases (SSL) VS10 concurrent clients downloading content (videos / documents) VS100 concurrent internal users looking for content etc.

Sql is doing nothing and WFE is at 100% VS WFE is sharing it’s capacity with the SQL proving content CSAPP Server is sharing capacity with the SQL index & crawl databases.

All the memory, processors and SSD drives in the world can’t make up for a bad architecture.

Page 7: SharePoint Performance

Scaling out for performance

For large, high-performance farms, scale out to multiple SQL Servers

No limit to the number of servers – each database can have its own

Best practice is to break out across some logical boundary (web app, service apps, etc. )

Using clustered SQL servers ?

Consider using instances and make each instance active on a separate physical node

Page 8: SharePoint Performance

SQL Server: The Most Important Factors

1) RAM

See my blog post :"How to prove your sql server needs more memory”

2) CPU

3) Storage

SSD & SAN are best performance (greatest IOPS)

Work with your storage vendor when configuring Logical Unit Numbers (LUNs)

4) Network

When the client asks how much it would cost to add 1GB of ram to the database server. (HT @RandomNoun7)1

Page 9: SharePoint Performance

Optimize the DB Server (1)

Request separate drives for:

Log-files

Data-files

TempDB files

Do not run non-SQL apps on SQL Server

Dedicate SQL Server to one SharePoint Farm

If virtualizing

Virtualize WFE and APP servers first

SQL can be virtualized, but it will affect performance (negatively)

Page 11: SharePoint Performance

Optimize the SQL Instance

Adjust database default locations

Never place on C: drive

Log and data on separate LUNs/physical disks

Test the disks you get offered !

Configure antivirus software to skip LDF/MDF/NDF files

Adjust server memory settings if running multiple instances

Use 64KB allocation units when formatting data and log partitions

You can still do this now! , but it involves some downtime (Up to 50% io performance gains measured !!) Many more!

Page 12: SharePoint Performance

Optimizing tempdb + DEMO

Pre-size – set to 25% of largest DB

Use simple recovery model

Use AutoGrow of ~ 100MB – if growing, increase initial size

DB Files

Each file on separate LUN, if possible

Store log on its own LUN

Use RAID 1+0 or Raid 10 (local drives)

TechNet SQL Server best practices (2007..) Technet: Best practices for SQL in SP (2013..)

Ref

Page 13: SharePoint Performance

When working with a SharePoint DB

Do not do any of following

Do not add, change or remove any built-in objects (tables, views, stored procedures, triggers, indexes)

Do not directly select from tables or views

Do not change the database collation

Some 3rd party apps will do this automatically ! Hence: keep SharePoint DB just for SharePoint

Page 14: SharePoint Performance

Optimizing content DBs

Very active content DBs should be placed on their own LUNs

Use RAID 5 or RAID 1+0

In most cases, keep size <200 GB

Why ? Recovering and performance reasons

Use site collection quotas

Don’t forget about the 2nd stage recycle bin

Use PowerShell to create site collections in their own specific content DB (separation of content)

Page 15: SharePoint Performance

Why are larger DBs slower ?

Read queries take longer

More rows to filter, group and sort

Write queries take longer

Increased lock contention

Causes more blocking

More data, but data cache same size

DB maintenance takes longer

Reindex

Dbcc checkdb

Page 16: SharePoint Performance

Achieving storage performance

Storage array (RAID 1+0)

10x 300 GB SAS drives, 15k RPM

1.5 TB effective space

~1500 IOPS = 1.0 IOPS/GB

Set of drives (RAID 1+0)

4x 750 GB SATA drives, 10k RPM

1.5 TB effective space

~300 IOPS = 0.2 IOPS/GB

Page 17: SharePoint Performance

Achieving storage performance (SSD)

Set of drives (RAID 5)

4x 480 GB Intel 520 SSD drives

1.44 TB effective space

~133.000 IOPS = 92.36 IOPS/GB

IOPS Are A Scam (Brent Ozar)

Use SQLIO and compare the advertised numbers with real world numbers.

When the sysadmin brags about SSD RAID 0 speed

Page 18: SharePoint Performance

Optimizing Search DBs

Max of 25 million items per each crawl and property DB

Store crawl and property DBs on separate, dedicated LUNs

Add data files to match Content DBs

Use RAID 1+0 storage

Page 19: SharePoint Performance

Agenda

Who am I

Setting up SharePoint, performance gains

Preventing future performance issues

Optimize your current deployment

Trouble-Shooting SharePoint Performance issues

When do you have an issue ?

How to solve the issue ? (Methodology)

Case: Extremely slow uploads on extranet

Page 20: SharePoint Performance

Reindexing DBs

Fragmentation happens by design – primary key uses GUID columns

Indexes are rebuilt daily as part of health analyzer job*

No manual reindex needed

Do not drop and recreate indexes

Do not alter “auto create statistics” settings (!)

* Make sure you run SharePoint on the latest CU, there are issues with the SharePoint jobs in old releases.

Page 21: SharePoint Performance

RBS Guidance (Remote BLOB Storage)

Consider using in document-heavy databases

Trade off

Storage costs & performance benefits versus

More complex architecture (support, DR, HA)

Consider third party providers

More full-featured solutions

In general

Do not externalize documents < 1MB

Ideal number varies widely

When I fail over to the DR site for the first time

Page 23: SharePoint Performance

Agenda

Who am I

Setting up SharePoint, performance gains

Preventing future performance issues

Optimize your current deployment

Trouble-Shooting SharePoint Performance issues

When do you have an issue ?

How to solve the issue ? (Methodology)

Case: Extremely slow uploads on extranet

Page 24: SharePoint Performance

Top reasons for a Slow SharePoint (1)

The recovery model for the content database is set to full by default. (SQL)

Search indexing, if it kicks in, consumes resources that you might need on your WFEs and SQL Servers for processing of requests. (SQL + WFE / APP)

Anti-virus software, if it is scanning every document that is uploaded, or is scanning the database or BLOB storage directly, it can slow things down tremendously. (APP+OS)

BLOB storage can affect performance – for better or worse. (SQL + Storage)

Database growth sizing (SQL)

ref

Page 25: SharePoint Performance

Top reasons for a Slow SharePoint (2)

The WFE can be a bottleneck (wrong load-balance settings SP farm) (WFE)

Connection between WFE & SQL (Network)

An avalanche of large media (Videos, PowerPoints, ZIP files)

Old and unused files hogging valuable SQL Server storage

Lack of scalability

ref

Page 26: SharePoint Performance

Trouble Shooting Performance Issues

Method of trouble shooting

Shotgun methodology

Happy clicking – no purpose without any specific order

Doing the first thing your search engine tells you to do (in production, without understanding)

Throwing the toolbox at the problem – trying everything whether or not it makes sense

If lucky, you find a solution you can’t explain, reproduce or understand

When I troubleshoot with the shotgun methodology and it backfires (HT @Mike_Walsh)

Page 27: SharePoint Performance

Trouble Shooting Performance Issues

Method of trouble shooting

Using a trouble shooting pattern (borrowed from ER)- Gather initial information- Prepare your mind- Work as a team- Plan your attack- Don’t be afraid of asking for help- Formulate a problem statement and verify it with all parties!- Remain calm- Understand priority and if the issue is stable or declining- Anticipate changes and plan ahead for worsening- Use all of the information available- Documentation- Clean up and preparation for next call

Page 28: SharePoint Performance

Trouble Shooting Be Careful!

Always be cautious in live / production environments

Try to re-produce the issue in test environment

You might be in for a bit more than just a ‘performance’ issue

Things might blow-up very quickly !

Page 29: SharePoint Performance

Case: Triage SharePoint Performance Issue

= ~ 30 Minutes…

Page 30: SharePoint Performance

Case: Triage SharePoint Performance Issue

Looking at the indicators

Using the toolbox to see what’s going on.

Page 31: SharePoint Performance

Case: Triage SharePoint Performance Issue

Install Sp_AskBrent

Page 32: SharePoint Performance

Case: Triage SharePoint Performance Issue