sharepoint 2010 performance and capacity planning

Upload: eric-shupps

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    1/42

    SharePoint 2010 Performance andCapacity Planning

    Eric Shupps

    BinaryWave Inc.

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    2/42

    Sponsored by:

    Visit us on the web at www.binarywave.com

    Real-time application monitoring, eventmanagement, and operational healthmetrics for Microsoft SharePoint

    Reduce troubleshooting time by up to 30%Increase efficiency and improve user satisfactionAvoid downtime and costly outagesMeet or exceed service level agreementsMaximize investment in current infrastructure

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    3/42

    Who Am I?

    Eric Shupps President, BinaryWave SharePoint Server MVP

    Member, Patterns & Practices Advisory Board(spg.codeplex.com )

    Web: www.binarywave.com Blog: www.sharepointcowboy.com

    Twitter: @eshupps Facebook: www.facebook.com/sharepointcowboy

    http://spg.codeplex.com/http://www.binarywave.com/http://www.sharepointcowboy.com/http://twitter.com/http://www.facebook.com/sharepointcowboyhttp://www.facebook.com/sharepointcowboyhttp://twitter.com/http://twitter.com/http://www.sharepointcowboy.com/http://www.binarywave.com/http://spg.codeplex.com/
  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    4/42

    Agenda

    Infrastructure Databases

    Pages Lists

    Components

    IT Professional

    Developer

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    5/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    6/42

    Network

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    7/42

    Architecture

    Design to function Heavy read operations require

    more web servers Heavy write operations require

    increased SQL IOPS Heavy services (i.e. Search)

    require additional applicationservers

    Design to Locality Global distribution with heavy

    write may require localizedfarms

    Web Servers

    Application Servers

    Database Servers

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    8/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    9/42

    Database Operations

    Frequency

    I n t e

    n s i

    t y

    Search

    Content Query

    Collaboration

    Browsing

    Social

    Publishing

    Client Access

    Workflow

    Security Trimming

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    10/42

    Database Types

    Configuration

    Central Admin

    Subscription

    Social Tagging

    Search Admin

    Synchronization

    Profile

    Managed Metadata

    Properties

    Usage

    Web Analytics

    Search Crawl

    Reporting

    Content

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    11/42

    Database Calculations

    Variable Value# Documents 1,000,000

    Average Size 150 KB

    # List Items 3,000,000

    # Versions 3

    Formula: Database size = ((D V) S) + (10 KB (L + (V D)))

    Database Size Estimates

    Content DB Size 486.5 GB

    Crawl 22.4 GB

    Property 7.3 GB

    Profile 48.8 GB

    Sync 30 GB

    All other DBs 269.5 GB

    Number of User Profiles

    50,000

    Total Database Sizing Estimate864.4 GB

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    12/42

    Content Databases

    Practical limit is 100GB Max supported limit is 200GB

    Create separate databases for: Site collections with large lists Large numbers of subsites Intensive read/write operations Data isolation (security)

    Consider amount of time it takes tobackup/restore

    Content

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    13/42

    Search Databases

    Crawl databases can be extremelylarge

    High index sensitivity Heavy transactional volume Isolate crawl and temp

    databases Distribute across spindles and

    LUNs

    Highest performance disk

    Admin

    Crawl

    Properties

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    14/42

    Application Databases

    Small to moderate size Moderate transactional volume Group on moderate

    cost/performance disk Analytics

    May be quite large May require isolation Reporting increases operational

    overhead

    Profile

    BCS

    App Registry

    Word Automation

    PerformancePoint

    PowerPivot

    Analytics

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    15/42

    Database Management

    Manually configure auto-growthsettings

    Defragment indexes Limit content database size per

    site collection Implement regular backup

    schedule to reduce log file size Isolate search databases

    Enforce quotas

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    16/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    17/42

    Page Controls

    Navigation Menus Ribbon Delegate Security Trimming Publishing Fields Search Layout Hidden

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    18/42

    Page Data Queries

    PageMasterPage

    LayoutPage

    NavigationControls

    PermissionsMenu

    OptionsWebParts

    Data Sources

    FileSystem

    Database External

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    19/42

    DEMOMeasuring Page ComponentPerformance

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    20/42

    Page CustomizationsUncustomized Page Customized Page

    Contentstored on

    disk, staticelementscached,

    assembliesloaded

    Contentretrieved

    fromdatabaseon eachrequest

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    21/42

    0

    0.02

    0.040.06

    0.08

    0.1

    1 2 3 4 5 6 7 8 9 10

    Uncustomized Customized

    Average Performance Delta: ~10%

    Test Results

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    22/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    23/42

    IIS Compression

    Reduces size of files transmittedacross the wire

    Configurable for various filetypes

    Increases CPU utilization onWFEs

    Does not effect dynamic contentretrieved from database

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    24/42

    DEMOEffect of IIS Compression on PageComponents

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    25/42

    CSS, Images and HTML

    Start with a minimal master page Use CSS overrides do not modify core CSS files! Minify and consolidate CSS files Use image stitching (CSS sprites) on pages with a lot of small

    images to reduce number of requests Store resources (style sheets, master pages, layout pages,

    images) on the PHYSICAL file system (i.e. /_layouts/) not theVIRTUAL file system (Style Library, Publishing Images)

    Assets in libraries are stored in database Easy for users to modify but reduce performance

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    26/42

    Javascript and JQuery

    Load only necessary javascript for target users Anonymous users dont need the same javascript

    references as contributors and designers http://www.sharepointnutsandbolts.com/2011/01/eliminatin

    g-large-js-files-to-optimize.html Minify and consolidate javascript files JQuery is a tool use it appropriately but dont abuse it

    A page isnt loa ded until ALL content is displayed Many operations iterate recursively through the DOM Simple syntax != increased performance

    Client Object Model

    http://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.htmlhttp://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.html
  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    27/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    28/42

    Large Lists

    Just because a list CAN holdmillions of items doesnt mean itSHOULD

    All user content in all lists

    throughout entire site collection isstored in a single table in thecontent database

    Folders improve view performanceNOT query performance

    List view web parts are now XSLTbased; however, large list displaysmay still require custom code

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    29/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    30/42

    Throttling and Locks

    SQL Server escalates row locks totable locks(> 5000)

    Query throttling reduces the impact

    of any single request by limiting theamount of data queried

    Throttling is configurable and canbe altered for administrators andspecific time periods

    Bit rate throttling controls downloadspeeds of large objects

    Dependent upon BLOB cache

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    31/42

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    32/42

    Page Caching

    Store query results in page cache to reduce databasecalls

    First load populates cache, subsequent loads readfrom cache

    Set cache expiration policies based on frequency of datamodifications

    Static content = long expiration window Dynamic content = short expiration window

    Cache as much content as possible but be aware ofimpact on server resources

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    33/42

    DEMOCaching SharePoint Data Queries

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    34/42

    Data Access

    Server Object Model Client Object Model CAML (LINQ) PortalSiteMapProvider Web Services Search

    REST

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    35/42

    The Need for Speed

    Client OMWeb

    Services

    REST CAMLSearch

    QualitySpeed

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    36/42

    Managing Large Data Sets

    Leverage search for mass dataretrieval

    Use CAML queries for targeteditem selection

    Joins reduce performance Maintain SQL indexes for optimal

    query execution Manipulate item data using in-

    memory objects

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    37/42

    Data Aggregation

    SPSiteDataQuery Allows data to be retrieved across multiple list objects. Provides moderate scalability but has performance implications for large

    datasets.

    LINQ to SharePoint Does not work with external (BCS) lists. Can result in suboptimal queriestest for performance.

    Search Data is indexed and not real time (only valid as of last indexing

    operation). Does not provide context of results (no SPListItem, SPList, SPWeb,

    etc.).

    PortalSiteMapProvider Cached, non-real-time data.

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    38/42

    Developer Dashboard

    Developer Dashboard provides metrics onobject execution for individual pages

    Displays code-level request data for events

    Includes related database queries Identifies request allocations and control event

    offsets

    Used by developers to isolate performanceissues

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    39/42

    Dashboard ExampleTotal PageExecution Time

    RelatedQueries

    Control Events

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    40/42

    Code Instrumentation

    Custom Code

    Events Methods ServiceCalls Queries

    SPMonitoredScope

    Microsoft.SharePoint.Utilities.SPMonitoredScopeprovides instrumentation for custom code

    Subscopes are displayed as children of parent scope Does not work with sandbox solutions

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    41/42

    DEMOInstrumenting Code for the Developer

    Dashboard

  • 8/12/2019 SharePoint 2010 Performance and Capacity Planning

    42/42