sharepoint performance optimization in 10 steps for the it professional
DESCRIPTION
10 Steps to Optimizing SharePoint 2010 and SharePoint 2007. This includes new performance and optimization information on SharePoint 2010.TRANSCRIPT
Joel Oleson SharePoint Product Architect Quest Software http://www.sharepointjoel.com
Contributions: Mike Watson Aptimize Fpweb
Agenda
Measuring Performance
10 Steps for Optimizing Performance Front End
Caching, Caching, Caching
Compression
Memory
App Pools
Offloading Auth & SSL
Page Optimization
Webpart Optimization
End to End
Q&A
Backend Dedicated Disks
Application settings
Index Optimization
SharePoint Configuration
Fast performance =
Happy Users
better user experience
more traffic
more revenue
Understanding Performance
Network Server Client
Network Infra Upgrades NIC Upgrades WAN Solutions overcoming latency Compression Caching Differencing
Server Tuning Data Centers Content Delivery Networks Offloading
Browser Render time Page Optimization Hardware, Driver and OS Upgrades
Page Performance Methodology
Methodology • Page Goal: 5 seconds or less
• Measure
• Improve
• Measure
What can we change? • Hardware
• Platform
• Application
• Network
Free Tools for Measuring Performance
www.Fiddler2.com
Ping (for latency)
www.WebPageTest.org
www.Aptimize.com
Perfmon
Caching, Caching, Caching Client Cache
Page Far Future Expires
Server Cache Reduce SQL Round Trips
Output Cache Publishing Site Collection
Page
Webparts
Never Cache a Search Results
not fully anonymous!
Disk Based Caching Blob Cache
Atom Feeds & RSS = 5 minutes by default
Gzip Compression
Reduce first view load time 30%-40% Reduces size:
HTML JavaScript StyleSheets
No effect on images: (JPEG, PNG, GIF) SharePoint is configured for Collab workload out of the box… Lots of Reads/Writes
Check for HTTP request header Accept-Encoding: gzip, deflate
Memory
Out of Memory Minimize App Pools
Dedicate App pool to customizations and consolidate all else
SQL timeouts
Warm up Users Complain about 1 minute render times
Intermittent performance issues
SpDisposeCheck Check for memory leaks, unclosed – Very common!
Webparts What to watch out for…
Watch for closed webparts – very comon Force webpart maintenance page or Designer to delete closed webparts
Poor performing webparts Dynamic Navigation – list based or cross site with no caching
Cross site rollups
Content Query Webpart
Why doesn’t SharePoint ship with cross site collection rollups and what’s new webparts??? Performance!!!
Msdn: Smart Core.js
Managing 2010 Perf Hosted by FPWeb
Look for memory leaks recycle often and/or fix
Avoid App pool memory limits or processor limits
Look for processor intensive code Render customizations via load tests
Identify Software boundaries Large & Wide lists
Deep Large site collections with lots of webs
Large DBs
TechNet: Plan for software boundaries
Identify Poorly Performing Code & Content
Health Rules - Definitions Health Rules Runs on a Timer Job
Create your own!
Repair Auto-
magically!
Performance Optimizations
Cleaner Pages and XHTML Compliance
Core.js size reduced 12%
List retrieval optimized
Content DB optimized for scale
SQL Blocking reduced with list throttling
Performance Point incorporated into SharePoint Server 2010
Distributed Indexing - Each crawl database can have many crawlers associated with it
Performance Controls HTTP Throttling - Every five seconds, a job runs that checks server resources Server CPU, Memory, Request in Queue, and Request Wait After 3 failed checks, server is throttled until a successful check.
List Controls – List is automatically throttled to max 5000 items
Health Report – Slowest Pages
Extensibility for reporting and
possibilities are limitless
Performance Dev Dashboard
web part info
SQL queries Info
Selected Scope general info
SPMonitoredScopes and their associated cost
WCF Calls
Off – default, On, and Ondemand – best practice for intranets!
Top Performance Killers 1. Indexing/Crawling
2. Backup (SQL & Tape)
3. Profile Import
4. Users - Inefficient views (Throttling in 2010 helps)
5. Timer Jobs – i.e. User Sync for large #s of Users
6. Poor Storage Configuration
7. STSADM Backup/Restore (Replace with third party or 2010 unattached recovery)
8. Large List Operations Delete/Update
9. Network Saturation/Congestion, i.e. Streaming Video
10. Misconfigured Network
Why is SQL that important? SQL Health = SharePoint Health! Sub-optimal SQL perf
will radiate to other components in the farm
Slow response from SQL Server will result in queued App requests
As the app slows down, so does SQL
Slow SQL
Slow App
Database Disk I/O Demand
Search
Most Demand
Config
Medium Demand
+SSP
*Content..
Low Demand
* Except during backup and Indexing + Except during Profile Import
Temp
Master
Model
Tlogs
Logging
Usage
Service App
New in 2010
Scaling SQL - Up
Design is Paramount! Consider the following:
Overall SQL Throughput (transactions/sec)
Disk throughput (IOPS)
Network throughput (MB/sec)
Disk backup throughput (MB/sec)
Network based backup throughput (MB/sec)
Length of maintenance windows (hours -> minutes)
New SharePoint 2010 Databases Workload based optimization
Farm
Config
Admin_Content
Application Registry Service
StateService
Web Analytics Web Service
WSS_Usage
Reporting_DB
Staging DB
Serv
ices
Search_Service_Application
Crawlstore
SearchDB
PropertyStore
WSS_Search
SocialDB
ProfileDB (was SSP db)
SyncDB
BDC_Service_DB
Word Conversion Service Application
Performance_Point
ManagedMetadata
Secure_Store_Service
Co
nte
nt
WSS_Content_GUID
WSS_Content_GUID1…
WSS_Content_GUID2…
Understanding Website Speed
Waterfall Diagram Breaks down page load
Shows everything to load the page
Server/Client/first render
Create diagram using WebPageTest.org
Fiddler
Vendors for Speeding Up SharePoint Software Based Solutions
Page & Performance Optimization –Dynamic/Automated Best Practices - Aptimize WAX
Dashboard Monitoring and Insight – Quest Foglight, System Center
Hardware Based Solutions WAN Accelerators – hardware devices used to compress, difference, and offload – Cisco, Citrix, Certeon
Reverse Proxy Compression, SSL Offload and Caching – F5, Microsoft ISA & IAG
Guideline What you can do to optimize your pages…
Minimize HTTP Requests Merges JS, CSS files into fewer files. Merges images into sprites
Add an Expires or a Cache-Control Header
Automatically adds far-future-expires headers to resources and uses auto URL versioning to ensure cached resources are kept up-to-date
Gzip Components Components are Gzipped and cached on the server to reduce CPU load
Put Stylesheets at the Top Stlyesheets are moved to the top of the page
Put Scripts at the Bottom Scripts can be moved to the bottom (or anywhere) on the page
Reduce DNS Lookups External resources can be cached and served from the local server
Minify JavaScript and CSS JS and CSS are minified
Remove Duplicate Scripts Duplicate JS files, stylesheets and images are removed
Configure ETags ETags are stripped from the resources
Optimize Images Images can be resampled, and GIFs converted to PNGs
Optimize CSS Sprites CSS Sprites are created and organized horizontally
Make favicon.ico Small and Cacheable
Favicon is configured for caching, and inserted if it is missing, removing a 404 condition.
Sharepoint2010.microsoft.com
Challenge Improve performance for microsoft.com site High traffic, no downtime
Applied Methodology Used 10 techniques http://www.aptimize.com/customers
Results
> 50% reduction in load time
"The improvement in page loading time is tremendous." Tony Tai, Product Manager, Microsoft Corporation
SharePoint 2010 Acceleration Hosted by FPWeb
Website Accelerator Automates best practices for browser load times
Aptimize Blog http://www.aptimize.com/blog
Twitter http://twitter.com/aptimize
Spoint.me (SharePoint Social Network) http://spoint.me/groups/sharepoint-performance/
Contact: 800-935-8414
USA Contact: [email protected]
Outside USA: [email protected]
Summary Memory, Disk and Network are frequent performance bottlenecks
SQL is extremely important to SharePoint health and Performance
Think IOPS when designing disk arrays
Separate work loads: temp, log, search, content.
SQL scales up and out. Don’t push the limits upward, but keep manageability and costs in mind when scaling out.
SharePoint 2010 provides proactive management
Check the HTML requests and how they affect performance with
www.fiddler2.com or www.webpagetest.org
Trial www.aptimize.com and improve your YSLOW score!
Resources
WebPageTest http://www.webpagetest.org
Fiddler http://www.fiddler2.com
Visual Round-Trip Analyzer http://www.microsoft.com/Downloads/details.aspx?FamilyID=119f3477-dced-41e3-a0e7-d8b5cae893a3
Microsoft case study Sharepoint.microsoft.com
http://blogs.msdn.com/sharepoint/archive/2009/09/28/how-we-did-it-speeding-up-sharepoint-microsoft-com.aspx
IAB guidelines http://www.iab.net/media/file/IAB_Ad_Load_Perfomance_BP_FINAL.pdf
Hosted SharePoint 2010
Over 10 years of SharePoint Hosting experience.
1st company in the World to host SharePoint back in 1999.
Over 1,000,000 SharePoint users in 80 countries.
Complete Server Control (unrestricted RDP access).
Secure VPN & Active Directory Integrations.
World class hosting network – 3 tier redundant ISP backbone.
No up-front costs – one predictable monthly price.
We are every bit SharePoint. We do one thing – very, very well.
Technology Responsibilities
38
Toughest Challenges
1. User Provisioning/de-provisioning
2. Delegation of Admin Rights
3. Compliance Reporting
4. Disaster Recovery
Active Directory
44%
DNS 26%
MIIS/ILM 16%
Exchange 14%
Multiple Technology Responsibilities
Technology Used / Deployed • 99% MS Server OS • 90% Management Frameworks
• 55% - MOM • 27% - HP OpenView • 21% - IBM Tivoli
• 87% Exchange • 74% SharePoint
Source: DEC 2008 Attendee Survey Whitepaper
Aptimize Website Accelerator Aptimize software automates best practices for browser load times
Aptimize Doubles Website Speeds:
Reduces HTTP requests by merging CSS and JS files
Reduces images with CSS sprite and CSS inlining
Compresses content using minification + Gzip
Increases caching using far-future-expires
50% reduction in data traffic and load times
40% increase in server throughput
Used in over 300 websites and intranets http://www.aptimize.com
Sample Waterfall Diagram
Server vs. Client time
Sample Waterfall Diagram
Server vs. Client time
Required Slide