Published on February 5, 2014
SharePoint 2013 Performance Boost the Performance of SharePoint Today! Brian Culver SPSUtah 2014
Special Thanks to our Platinum Sponsor …and our Gold Sponsor SPSUtah 2014
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 SPSUtah 2014
Session Agenda • • • • • • Software Boundaries What is Performance? Infrastructure Performance Hardware Performance SharePoint Performance Testing Performance SPSUtah 2014
Software Boundaries • 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 SPSUtah 2014
What is Poor Performance? • Increased end user response time • Reduced overall system throughput SPSUtah 2014
Infrastructure Performance • Active Directory • Exchange • Desktops • Network Topology • WAN Optimization • SharePoint Farm • Web Front Ends • Application Servers • Database Servers SPSUtah 2014
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” SPSUtah 2014 Test, Measure, and Re-test
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? SPSUtah 2014
Search Performance • Grouping content sources by speed • Tuning crawling • Protocol • Authentication • Choosing multithreaded iFilters • Proper infrastructure • Dedicated Query Apps vs Distributed Query Apps SPSUtah 2014
SharePoint Farm Performance • Authentication Performance • # of round trips • Processing speed of provider • Fastest to Slowest • Anonymous • Claims Authentication • Kerberos • NTLM (Classic Windows Authentication • Basic • Forms and WebSSO • ADFS SPSUtah 2014 In 2013, Claims is the default. Avoid Classic Authentication.
SharePoint Farm Performance • Which Machines cause the bottleneck? • Watch • CPU • Memory • Disk I/O • Network SPSUtah 2014
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. SPSUtah 2014
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. SPSUtah 2014
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 SPSUtah 2014
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 SPSUtah 2014
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 SPSUtah 2014
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 SPSUtah 2014
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 SPSUtah 2014
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 SPSUtah 2014
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 • Add/Remove counters via Object Model SPSUtah 2014
Demo List View Throttling and Load Performance Throttling SPSUtah 2014
List View Throttling SPSUtah 2014
List View Throttling SPSUtah 2014
List View Throttling SPSUtah 2014
List View Throttling – Gone in SP2013 SPSUtah 2014
List View Throttling SPSUtah 2014
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 SPSUtah 2014
Object Cache Settings • Configure caching via the Site Settings • Configure caching via web.config for Web Applications. • Web.config overrides the Site Settings. SPSUtah 2014
Output Cache Settings • Configure caching via the Site Settings • Configure caching via web.config for Web Applications. • Web.config overrides the Site Settings. SPSUtah 2014
Publishing Site Output Cache (Site Output Cache) • Now configurable per Site/Web • Use the Publishing Images Library (Images) • Use Pages Publishing Library (Pages) SPSUtah 2014
Demo Caching SPSUtah 2014
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 100100% (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 SPSUtah 2014
IIS Compression SPSUtah 2014
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. SPSUtah 2014
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. SPSUtah 2014
Custom Code • Common cause for poor performance • Custom inefficient features SPSUtah 2014
Testing Performance • SharePoint Load/Performance Testing • Population tools, performance tuning techniques SPSUtah 2014
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 SPSUtah 2014
Developer Dashboard SPSUtah 2014
Developer Dashboard ON • Always ON for all users OFF • Completely OFF for all users NOTE: Ondemand is only available in SP2010 $csvc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService; $devdash = $csvc.DeveloperDashboardSettings ; $devdash.DisplayLevel = "On“; $devdash.Update(); SPSUtah 2014
Demo Developer Dashboard SPSUtah 2014
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 SPSUtah 2014
Fiddler • Great, light weight tool. Provides quick overview of the website performance. • Free (still …) • 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. SPSUtah 2014
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. SPSUtah 2014
Questions ? ? ? SPSUtah 2014 ?
Constructive Feedback Is Appreciated Brian – Your presentation was … Thanks! Good Demos! SPSUtah 2014 Great information, but would like to have learned more about [Insert Topic]
Twitter: @spbrianculver E-mail: email@example.com Blog: http://blog.expertpointsolutions.com/ SPSUtah 2014 Thank you!
Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...
In this presentation we will describe our experience developing with a highly dyna...
Presentation to the LITA Forum 7th November 2014 Albuquerque, NM
Un recorrido por los cambios que nos generará el wearabletech en el futuro
Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...
SharePoint 2013; SharePoint 2010; ... 5 Reasons Why You Have SharePoint Performance Issues . ... SharePoint admins, devs, ...
SharePoint Conference 2014 ... SharePoint Designer SharePoint Online SharePoint Server 2013 SharePoint SharePoint Apps SharePoint Strategy SkyDrive Pro ...
View SharePoint Conference 2014 recordings. View recordings of the main keynote, ... Microsoft SharePoint 2013 is the latest version of SharePoint.
Troubleshoot a Reporting Services Installation. ... If the SharePoint 2013 Management Shell is open when you complete ... Right-click the Performance node, ...
... Three versions of documentation for SharePoint products and technologies are ... SharePoint 2013 sites provide secure ...
A list of popular SharePoint Administration Tools that help the SharePoint Administrator keep their Farm ... SharePoint Administration Tools. ... 2013 at 8 ...
Microsoft SQL Server 2014 PowerPivot for SharePoint 2013 extends SharePoint Server 2013 to add server-side data refresh processing, collaboration, and ...
SharePoint Server 2010 Performance and Capacity Technical Case Studies ... TechNet Blogs » Bill Baer » SQL Server 2014 and SharePoint Server 2013.
... best practices for SQL Server in a SharePoint ... 2014 and SharePoint Server 2013, ... SharePoint Server 2013 performance ...