Transcript
Page 1: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Boost the Performance of SharePoint Today!

Page 2: SharePoint Saturday San Antonio: SharePoint 2010 Performance

About Brian Culver

– SharePoint Solutions Architect for Expert Point Solutions

– Based in Houston, TX

– Author • SharePoint 2010 Unleashed

• Various White Papers

– Speaker and Blogger

Page 3: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Session Agenda

• What is Performance?

• Infrastructure Performance

• Hardware Performance

• SharePoint Performance

• Testing Performance

Page 4: SharePoint Saturday San Antonio: SharePoint 2010 Performance

What is Poor Performance?

• Increased end user response time

• Reduced overall system throughput

Page 5: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Infrastructure Performance

• Active Directory

• Exchange

• Desktops

• Network Topology

• SharePoint Farm

– Web Front Ends

– Application Servers

– Database Servers

Page 6: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• 3-4 Web Servers per DC

• 8 Web Servers per SQL Server

• Bandwidth and Latency<1 ms

• Workflow Running

• Search: Indexing

– iFilters

– # of servers

– Scheduling and throttling of crawling

Page 7: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 8: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Search Performance

• Grouping content sources by speed

– Tuning crawling

– Protocol

– Authentication

• Choosing multithreaded iFilters

– Adobe ($) vs FoxIt ($$$)

• Proper infrastructure

– Dedicated Query Apps vs Distributed Query Apps

Page 9: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Authentication Performance – # of round trips

– Processing speed of provider

• Fastest to Slowest – Anonymous

– Kerberos

– NTLM

– Basic

– Forms and WebSSO

Page 10: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Which Machines cause the bottleneck?

• New 2010 Performance Counters

• Watch – CPU

– Memory

– Disk I/O

– Network

Page 11: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 12: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Currency Rate: 10%

• Active Requests: 1%

• Usage profiles

– Light (20 RPH) – Readers/Visitors

– Typical (36 RPH) – Readers/Writers (discussions/lists/etc.)

– Heavy (60 RPH) - Readers/Writers (Upload some/ MySites/publishing/libraries/etc.)

– Extreme (120 RPH) – Lite Readers/Constant Writers (Upload/MySites/publishing/RSS/Many Sites/etc.)

Page 13: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• How many RPS are needed for your farm?

• Actual: Use historical data – IIS Logs, Web Trends, etc.

• Estimate: Number of Active Users – (# users) x (# operations per usage profile)

– Factor in concurrency

Page 14: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Example:

• 100k users, 20k active, concurrency 5% to 10% peak

• 10% light, 70% typical, 15% heavy, 5% extreme – 20k x 20 x .1 = 40,000 RPH

– 20k x 36 x .7 = 504,000 RPH

– 20k x 60 x .15 = 180,000 RPH

– 20k x 120 x .05 = 120,000 RPH

– 844,000 / 3600 = 235 RPS

– 235 x .1 = 23.5 RPS required

Page 15: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• What can our farm support?

• Input/Output Operations Per Second (IOPS): Storage vendors publish IOPS for their hardware.

– Derive speed needs from RPS calculations

– Derive backup needs from content size

– 1 IOP per RPS 1 IOP = 1 RPS

• Measured with tools such as Iometer (originally developed by Intel), Iozone, FIO and Data Test Program (dt).

Page 16: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Example:

• 100k users, 20k active, concurrency 5% to 10% peak

• 10% light, 70% typical, 15% heavy, 5% extreme

– Our farm requires 23.5 RPS (IOPS) – Our farm supports 200 IOPS

– Success! Our farm is well above the required.

Plan for 10 IOPS per AVG hourly RPS

– Handle peak loads!

– Success! Our farm can handle peak loads.

Page 17: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Farm Performance

• Understand SharePoint workload – Use RAID 10 over other RAID ##

– And yes, RAID 10 for SharePoint is better than RAID 5

• Separate your database files – ** Tempdb is the most heavily used DB **

– Place different databases on different volumes

– Log files separate from data files

– 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 18: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 19: SharePoint Saturday San Antonio: SharePoint 2010 Performance

SharePoint Performance

We will discuss the following:

• Large List Control

• Performance Throttling

• Developer Dashboard – Good for IT Pros and Developers alike

• Caching

• IIS 7.0

• Content Query Web Part

Page 20: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 21: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 22: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 23: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 24: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 25: SharePoint Saturday San Antonio: SharePoint 2010 Performance

DEMO

List View Throttling and Load Performance Throttling

Page 26: SharePoint Saturday San Antonio: SharePoint 2010 Performance

List View Throttling

Page 27: SharePoint Saturday San Antonio: SharePoint 2010 Performance

List View Throttling

Page 28: SharePoint Saturday San Antonio: SharePoint 2010 Performance

List View Throttling

Page 29: SharePoint Saturday San Antonio: SharePoint 2010 Performance

List View Throttling

Page 30: SharePoint Saturday San Antonio: SharePoint 2010 Performance

List View Throttling

Page 31: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 32: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Caching

• Configure caching via the Site Settings

• Configure caching via web.config for Web Applications.

– Web.config overrides the Site Settings.

Page 33: SharePoint Saturday San Antonio: SharePoint 2010 Performance

DEMO

Caching

Page 34: SharePoint Saturday San Antonio: SharePoint 2010 Performance

IIS 7.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

Page 35: SharePoint Saturday San Antonio: SharePoint 2010 Performance

IIS 7.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

Page 36: SharePoint Saturday San Antonio: SharePoint 2010 Performance

IIS 7.0 Performance

• Increase static compression level to 9 and dynamic to 5 Appcmd.exe set config -section:httpCompression -

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

• Change dynamic compression CPU utilization threshold range from 20-75%

• APPCMD.EXE set config –section:httpCompression /dynamicCompressionDisableCpuUsage:75 APPCMD.EXE set config –section:httpCompression /dynamicCompressionEnableCpuUsage:20

• Enable caching before insertion into page output cache APPCMD.EXE set config –section:urlCompression /dynamicCompressionBeforeCache:true

Page 37: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 SP 2010, Enabled by default

• Best performance when content shares the same permissions and doesn’t change often.

Page 38: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Custom Code

• Common cause for poor performance

• Custom inefficient features

Page 39: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Plan for Software Boundaries

• Helps understand the tested performance and capacity limits of SharePoint

Role Specifications

Stand-alone computer 1 dual core Intel Xeon 2.8 gigahertz (GHz) 64-bit processor, 2 gigabytes (GB) RAM

Web server computer 2 dual core Intel Xeon 2.8 GHz 64-bit processors, 4 gigabytes (GB) RAM

Database computer running Microsoft SQL Server

4 dual core Intel Xeon 2.8 GHz 64-bit processors, 32GB RAM

Client computers Pentium III 1.2 GHz processor, 1 GB RAM

Page 40: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Testing Performance

• SharePoint Load/Performance Testing

• population tools, performance tuning techniques

Page 41: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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 42: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Developer Dashboard

Always ON for all users

stsadm -o setproperty -pn developer-dashboard -pv on ON

Completely OFF for all users

stsadm -o setproperty -pn developer-dashboard -pv off OFF

Available to Site Administrators (Toggle on top-right)

stsadm -o setproperty -pn developer-dashboard -pv ondemand

On-Demand

Page 43: SharePoint Saturday San Antonio: SharePoint 2010 Performance

DEMO

Developer Dashboard

Page 44: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Fiddler

• Great, light weight tool. Provides quick overview of the website performance.

• Free

• It can also records scripts that you can use in VSTS.

• 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: SharePoint Saturday San Antonio: SharePoint 2010 Performance

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: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Questions

Page 48: SharePoint Saturday San Antonio: SharePoint 2010 Performance

Brian Culver, MCM

Twitter:

@spbrianculver

E-mail:

[email protected]

Blog:

spbrian.blogspot.com