www.expertpointsolutions.com
SharePoint 2010 Performance
• Brian Culver ● Sept 2012 ● SIA-202
Boost the Performance of SharePoint Today!
About Brian Culver
• SharePoint Solutions Architect for Expert Point Solutions
• Based in Houston, TX
• Author • SharePoint 2010 Unleashed
• Various White Papers
• Speaker and Blogger
Session Agenda
• Software Boundaries
• What is Performance?
• Infrastructure Performance
• Hardware Performance
• SharePoint Performance
• Testing Performance
• 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 2010 Software Boundaries
• http://technet.microsoft.com/en-us/library/cc262787.aspx • SharePoint 2013 Software Boundaries
• http://technet.microsoft.com/en-us/library/cc262787(v=office.15).aspx • SharePoint 2007 Software Boundaries
• http://technet.microsoft.com/en-us/library/cc262787(v=office.12).aspx
Software Boundaries
• Some “Supported” Boundaries
• 300 content databases per web application
• 20 managed paths per web application
• 250,000 site collections per web application
• 250,000 web sites per site collection
• 10 application pools per web server
• 200 GB per content database (general)
• 4 TB for low-use scenarios (record management, document centers)
• 60 million items per content database
• 30 million documents per document library
• 30 million list items per list
• Workflows?
Software Boundaries for SP2010
What is Poor Performance?
• Increased end user response time
• Reduced overall system throughput
Infrastructure Performance
• Active Directory
• Exchange
• Desktops
• Network Topology
• SharePoint Farm
• Web Front Ends
• Application Servers
• Database Servers
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?
• iFilters
• # of servers
• Scheduling and throttling of crawling
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
SharePoint Farm Performance
• Authentication Performance
• # of round trips
• Processing speed of provider
• Fastest to Slowest
• Anonymous
• Kerberos
• NTLM
• Basic
• Forms and WebSSO
• ADFS
Where in this is Claims Authentication?
SharePoint Farm Performance
• Which Machines cause the bottleneck?
• New 2010 Performance Counters
• Watch
• CPU
• Memory
• Disk I/O
• Network
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.
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 **
• Usage database is very busy
• 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.
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
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
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
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
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
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
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
List View Throttling and Load Performance Throttling
Demo
List View Throttling
List View Throttling
List View Throttling
List View Throttling
List View Throttling
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
• Office web applications cache
Caching
• Configure caching via the Site
Settings
• Configure caching via
web.config for Web Applications.
• Web.config overrides the Site
Settings.
Office Web Apps Cache (SP2010 only)
• Standard SharePoint site collection
(Team Site) created by Office Web Apps
Cache Creation timer job
• Single URL per web application:
/sites/Office_Viewing_Service_Cache
• Contains rendered images and XAML
for Office docs
• Allowed to grow to 100GB
• Documents live for 30 days
Office Web Apps Cache (SP2010 only)
• Relocate WAC cache to a dedicated database using Set-OfficeSPWebAppsCache
PowerShell cmdlet
• Tune caching based on how content changes
• Static content should be cached more
• Dynamic content should be cached less
• Exclude caches from backup and DR
• http://technet.microsoft.com/en-us/library/ee837422.aspx
Recommendations
WAC Cache Database
Caching
Demo
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
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
IIS 7.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
IIS Compression
Demo
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.
Custom Code
• Common cause for poor performance
• Custom inefficient features
Testing Performance
• SharePoint Load/Performance Testing
• Population tools, performance tuning techniques
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
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
Developer Dashboard
Demo
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
Fiddler
• Great, light weight tool. Provides quick
overview of the website performance.
• Free
• 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.
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.
Questions
? ?
?
?
Constructive Feedback Is Appreciated
Great information,
but would like to
have learned more
about [Insert Topic] Brian – Your
presentation
was …
Good
Demos!
Thanks!
Thank you!
Brian Culver, MCM
Twitter:
@spbrianculver
E-mail:
Blog:
http://blog.expertpointsolutions.com/