Transcript
Page 1: Boost the Performance of SharePoint Today!

www.expertpointsolutions.com

SharePoint 2013 Performance

• Brian Culver ● March 2013 ● SIA203

Boost the Performance of SharePoint Today!

Page 2: Boost the Performance of SharePoint Today!

About Brian Culver

• SharePoint Solutions Architect for Expert Point Solutions

• Based in Houston, TX

• Author• SharePoint 2010 Unleashed

• Upcoming SharePoint 2013 Workflows

• Various White Papers

• Speaker and Blogger

Page 3: Boost the Performance of SharePoint Today!

Session Agenda

• Software Boundaries

• What is Performance?

• Infrastructure Performance

• Hardware Performance

• SharePoint Performance

• Testing Performance

Page 4: Boost the Performance of SharePoint Today!

• Understand the tested (by Microsoft) performance and capacity limits of SharePoint

• General recommendations for average hardware and usage

• Many come from MSIT• > 150,000 employees and vendors• Very large amounts of content• Globally accessed

• Meet various goals including:• Backup and restore to meet standard SLAs• Ensure good performance early on with low hardware standards and low

knowledge requirements• Allow configuration to scale and maintain decent performance

• SharePoint 2013 Software Boundaries

• http://technet.microsoft.com/en-us/library/cc262787.aspx• SharePoint 2010 Software Boundaries

• http://technet.microsoft.com/en-us/library/cc262787(v=office.14).aspx• SharePoint 2007 Software Boundaries

• http://technet.microsoft.com/en-us/library/cc262787(v=office.12).aspx

Software Boundaries

Page 5: Boost the Performance of SharePoint Today!

What is Poor Performance?

• Increased end user response time

• Reduced overall system throughput

Page 6: Boost the Performance of SharePoint Today!

Infrastructure Performance

• Active Directory

• Exchange

• Desktops

• Network Topology

• WAN Optimization

• SharePoint Farm

• Web Front Ends

• Application Servers

• Database Servers

Page 7: Boost the Performance of SharePoint Today!

SharePoint Farm Performance

• 3-4 Web Servers per DC

• 8 Web Servers per SQL Server

• Bandwidth and Latency<1 ms

• 10 Application Pools per web server

• 20 web applications per farm

• Search: Indexing

• iFilters

• # of servers

• Scheduling and throttling of crawling

• “Boundaries” vs. “Supported”

• Test, test, test

Page 8: Boost the Performance of SharePoint Today!

Search Performance

• Crawl Time: How long does the overall time the crawl takes?

• Corpus Size: How big is the corpus size?

• Indexing Speed: How many documents are being indexed per

second?

Page 9: Boost the Performance of SharePoint Today!

Search Performance

• Grouping content sources by speed

• Tuning crawling

• Protocol

• Authentication

• Choosing multithreaded iFilters

• Proper infrastructure

• Dedicated Query Apps vs Distributed Query Apps

Page 10: Boost the Performance of SharePoint Today!

SharePoint Farm Performance

• Authentication Performance

• # of round trips

• Processing speed of provider

• Fastest to Slowest

• Anonymous

• Claims Authentication

• Kerberos

• NTLM (Classic Windows Auth

• Basic

• Forms and WebSSO

• ADFS

In 2013, Claims is the default. Avoid Classic Authentication.

Page 11: Boost the Performance of SharePoint Today!

SharePoint Farm Performance

• Which Machines cause the bottleneck?

• Watch

• CPU

• Memory

• Disk I/O

• Network

Page 12: Boost the Performance of SharePoint Today!

SharePoint Farm Performance

• Requests per Second (RPS): How many requests you can service?

RPS is used for measuring how many pages are delivered. It can

measure how many searches are executed.

• Requests per Hour (RPH): Average user requests in an hour.

• Page Time (TTLB): How long it takes to deliver a page back to the

client? Used in conjunction with RPS.

• For example, our farm needs to deliver 100 RPS and pages should

reach the client within 5 seconds.

Page 13: Boost the Performance of SharePoint Today!

SharePoint Farm Performance

• Understand SharePoint workload

• Use RAID 10 over other RAID ##

• And yes, RAID 10 for SharePoint is better than RAID 5, 50, 60, etc.

• Separate your database files

• ** TempDB ** is the most heavily used DB **• Create a TempDB per proc

• Usage database is very busy

• Search database is very busy

• Log files separate from data files

• Place different databases on different volumes

• SQL Server files separate from other uses (e.g. OS files)

• Separate your files according to I/O workload.• A single volume may be fast enough to handle several databases.

Page 14: Boost the Performance of SharePoint Today!

Common Performance Problems

• Large Lists

• Lots of Web Parts importing non-cached data from various

places

• Cross-List queries and CBQ Web Parts

• Too Deep Site Structures

• Too many sites in a site collection

• Too many site collections in a Content DB

• Too many ACLs

Page 15: Boost the Performance of SharePoint Today!

SharePoint Performance

We will discuss the following:

• Large List Control

• Performance Throttling

• Developer Dashboard

• Great for IT Pros and Developers alike

• Caching

• IIS 7.0/8.0

• Content Query Web Part

Page 16: Boost the Performance of SharePoint Today!

Large List Control

So what is new?

• Lists and Libraries hold 50,000,000

items

• Recommended List View

• Size:

• Why 2000 or 5000?

• Server Overload

• Solution:

• List View Throttling

Page 17: Boost the Performance of SharePoint Today!

List View Throttling

• Limits the number of list items returned per view.

• Operations that exceed this limit are prohibited.

• Recommended to configure at the Web Application level.

• Default List View Threshold values:

• 5000 for Users

• 20000 for Auditors and Administrator

Page 18: Boost the Performance of SharePoint Today!

List View Throttling

• List can be configured individually via API

• Daily Time Window for Large Queries: Turn off Throttling during a daily

window

• Comes with a Warning

• List View Lookup Threshold: How many complex fields are allowed

• Lookup, Person/Group, or workflow status fields

• Result in JOINs

Page 19: Boost the Performance of SharePoint Today!

Performance Throttling

• HTTP Request Monitoring and Throttling: Throttle Performance during

high server load

• SharePoint monitors performance counters and uses threshhold

values

• Get 503 request errors

• Timer Job fails to start

• PUT request still allowed

• Search can trigger performance throttling and cause issues

Page 20: Boost the Performance of SharePoint Today!

Performance Throttling

• Protects the server during peak loads. Monitors:

• Available Memory

• CPU %

• ASP.NET Queue

• Wait time in queue

• Checked every 5 seconds

• 3 over limit start throttling, logs events

• 1 below limit stop throttling

• Configure via PowerShell and Object Model

• Adds/Remove counters via Object Model

Page 21: Boost the Performance of SharePoint Today!

List View Throttling and Load Performance Throttling

Demo

Page 22: Boost the Performance of SharePoint Today!

List View Throttling

Page 23: Boost the Performance of SharePoint Today!

List View Throttling

Page 24: Boost the Performance of SharePoint Today!

List View Throttling

Page 25: Boost the Performance of SharePoint Today!

List View Throttling – Gone in SP2013

Page 26: Boost the Performance of SharePoint Today!

List View Throttling

Page 27: Boost the Performance of SharePoint Today!

Caching

• Page Output Cache: for generated HTML markup for future requests

• Cache frequently used Lists and reduce round trips to the database

• Object Cache: for common objects and query results

• Content Query Web Part

• List Views

• Disk-Based (BLOB) Cache: for commonly requested files on WFE

disks

• Automatically cache BLOBs and reduce round trips to the content

databases

Page 28: Boost the Performance of SharePoint Today!

Object Cache Settings

• Configure caching via the Site

Settings

• Configure caching via

web.config for Web Applications.

• Web.config overrides the Site

Settings.

Page 29: Boost the Performance of SharePoint Today!

Output Cache Settings

• Configure caching via the Site

Settings

• Configure caching via

web.config for Web Applications.

• Web.config overrides the Site

Settings.

Page 30: Boost the Performance of SharePoint Today!

Publishing Site Output Cache (Site Output Cache)

• Now configurable per Site/Web

• Use the Publishing Images Library (Images)

• Use Pages Publishing Library (Pages)

Page 31: Boost the Performance of SharePoint Today!

Caching

Demo

Page 32: Boost the Performance of SharePoint Today!

IIS 7.0/8.0 Performance

• Design pages for fast downloading and rendering

• Lazy loading of large JavaScript files

• Clustering images

• Reduce image requests

• Reduce the number of secured items in pages

• Each secured request results in two roundtrips

• Validate credentials

• Enumeration of groups the user belongs to

• Leverage IIS Compression

• Static Compression

• Dynamic Compression

Page 33: Boost the Performance of SharePoint Today!

IIS 7.0/8.0 Performance

• Reduce amount of data sent to client and reduce the number of trips a

browser makes.

• View State Caching and Reduce Payload.

• Cache View State to be used in subsequent post-backs

• Minify JavaScript

• Remove redundant white spaces and new lines

• Reduce File Requests

• Merge multiple JavaScript/CSS files in one request

• Microsoft didn’t get the memo on this one in SP2013

Page 34: Boost the Performance of SharePoint Today!

IIS 7.0/8.0 Performance

• Increase static compression level to 9 and dynamic to 9

APPCMD.EXE set config -section:httpCompression -

[name='gzip'].staticCompressionLevel:9 -[name='gzip'].dynamicCompressionLevel:9

• Change dynamic compression CPU utilization threshold range from

100-100% (This effectively disables it)

APPCMD.EXE set config –section:httpCompression /dynamicCompressionDisableCpuUsage:100

APPCMD.EXE set config –section:httpCompression /dynamicCompressionEnableCpuUsage:100

• Enable caching before insertion into page output cache

APPCMD.EXE set config –section:urlCompression /dynamicCompressionBeforeCache:true

Page 35: Boost the Performance of SharePoint Today!

IIS Compression

Page 36: Boost the Performance of SharePoint Today!

Content Search Web Part

• Powerful web part for searching, aggregating and rolling up

information from literally any source.

• Best Performance period!

• Security Trimming

• Cross Site Collection scoping

• Very flexible

• Use Display Templates to customize output.

Page 37: Boost the Performance of SharePoint Today!

Content Query Web Part

• Powerful web part for aggregating and rolling up information from

various sources.

• Designed to leverage the object cache by caching the query results.

• In MOSS 2007, Disabled by default

• In SP2010 and SP2013, Enabled by default

• Best performance when content shares the same permissions and

doesn’t change often.

Page 38: Boost the Performance of SharePoint Today!

Custom Code

• Common cause for poor performance

• Custom inefficient features

Page 39: Boost the Performance of SharePoint Today!

Testing Performance

• SharePoint Load/Performance Testing

• Population tools, performance tuning techniques

Page 40: Boost the Performance of SharePoint Today!

Developer Dashboard

• Allows monitoring page loads and performance

• Information:

• Times to render page

• Page checkout level

• DB query info

• Web part processing time

• Any critical events or alerts

Page 41: Boost the Performance of SharePoint Today!

Developer Dashboard

Page 42: Boost the Performance of SharePoint Today!

Developer Dashboard

• Always ON for all usersON

• Completely OFF for all usersOFF

NOTE: Ondemand is only available in SP2010

$csvc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService; $devdash = $csvc.DeveloperDashboardSettings ;$devdash.DisplayLevel = "On“; $devdash.Update();

Page 43: Boost the Performance of SharePoint Today!

Developer Dashboard

Demo

Page 44: Boost the Performance of SharePoint Today!

Visual Studio Test Suite

• Test throughout your testing

lifecycle of planning, testing and

tracking your progress

• Use with TFS to automate builds,

deployments and testing

Page 45: Boost the Performance of SharePoint Today!

Fiddler

• Great, light weight tool. Provides quick

overview of the website performance.

• Free (still .. for now)

• It can also record scripts that you can use in

Visual Studio Test Suite.

• neXpert: Fiddler Add-on that checks for

classic performance best practices and

produces a HTML report on the issues found in

a Fiddler capture.

Page 46: Boost the Performance of SharePoint Today!

YSlow

• Analyzes web pages and suggests

ways to improve their performance

based on a set of rules for high

performance web pages.

• Grades web page based rulesets.

• Suggests performance

improvements, summarizes page

components, statistics for the page,

and provides tools for performance

analysis.

Page 47: Boost the Performance of SharePoint Today!

Questions

??

?

?

Page 48: Boost the Performance of SharePoint Today!

Constructive Feedback Is Appreciated

Great information,

but would like to

have learned more

about [Insert Topic]Brian – Your

presentation

was …

Good

Demos!

Thanks!

Page 49: Boost the Performance of SharePoint Today!

Thank you!

Brian Culver, MCM

Twitter:

@spbrianculver

E-mail:

[email protected]

Blog:

http://blog.expertpointsolutions.com/


Top Related