SharePoint Performance: Best Practices from the Field Jason Himmelstein [email protected] @ sharepointlhorn
May 12, 2015
SharePoint Performance: Best Practices from the Field
Jason Himmelstein [email protected] @sharepointlhorn
Jason’s contact & vitals Microsoft vTSP
virtual Technology Solutions Professional SharePoint Foundation Logger
http://spflogger.codeplex.com Web: www.sentri.com Blog: www.sharepointlonghorn.com Twitter: @sharepointlhorn LinkedIn: www.linkedin.com/in/jasonhimmelstein
Author of Developing Business Intelligence Apps for SharePoint http://bit.ly/SharePointBI
Agenda
Infrastructure Design Analyze Customer Requirements Hardware requirements Server configuration Network recommendations Virtual vs. Physical
SQL Server Performance Pre-grow vs. Auto-growth I\O requirements Sizing recommendations Database Isolation
SharePoint Server Performance Tier isolation vs. Location Proximity Requirements Load balancing your App Tier Load testing in your environment Governance & Troubleshooting
Infrastructure Design Analyze Customer Requirements
High Availability Disaster Recovery Budget Constraints Location Awareness Number of Concurrent Users
Infrastructure Design Hardware requirements
Web servers & Application servers
SQL servers
What constitutes a small/medium/large farm?
Developer or Evaluation environments
CPU: 4 cores, 64-bit requiredRAM: 4GB
Hard Drive space: 80GB
Production in Single Server or farm environments
CPU: 4 cores, 64-bit requiredRAM: 8GB
Hard Drive space: 80GB
Small FarmCPU: 4 cores, 64-bit
requiredRAM: 8GB
Hard Drive space: 80GB
Medium Farm CPU: 8 cores, 64-bit
requiredRAM: 16GB
Hard Drive space: 80GB
Large FarmUp to 2TB Content DBS
RAM: 32 GB From 2TB to 5TB Content
DBSRAM: 64 GB
Infrastructure Design Server configuration – Small Farm
Infrastructure Design Server configuration – Scaled Farm
Infrastructure Design
Infrastructure Design Network recommendations
Traffic Isolation Web Database Search Service Applications Authentication
Number of NICs per server Limit the number of hops Colocation of servers
Infrastructure Design Physical
Benefits No virtualization overhead Ability to target DBs to separate physical spindles Only OS limits on Hardware Simple Networking
Drawbacks Backup & recovery time Limited snapshot ability Costly & lacking Centralized Management Failover limitations
Infrastructure Design Virtualization
Benefits Snapshot capability Rapid system deployment HA\DR ability Centralized Management
Drawbacks Loss of minimum 8% compute for overhead Limitations on addressing full hardware Disks are stored as single/multi-file Centralized Networking
SQL Server Performance
Pre-grow databases Requires more space initially Dramatic increase in performance Databases like contiguous space
Auto-growth Immediately change from 1m increments Do not use “Grow by %” setting 50-100m maximum growth per required Schedule maintenance task to check size & grow in off
peak hours as required
SQL Server Performance I\O requirements
DB Files RAID Level Optimization
1 TempDB data 10 Write
2 TempDB logs 10 Write
3 ContentDB data 10 Read\Write
4 ContentDB logs 10 Write
5 Crawl DB logs 10 Write
6 Crawl DB data 10 Read\Write
7 Property DB logs 10 Write
8 Property DB data 10 Write
9 Services DB logs 10 Write
10 Services DB data 5/10 Read\Write
11 Archive Content DB 5 Read
12 Publishing Site Content DB 5 Read
SQL Server Performance Sizing recommendations
Recommended limit for ContentDBs: 200G Maximum supported: 4TB
Includes Remote BLOBs Backup/Restore timing Simple vs. Full recovery mode
SQL Server Performance Database Instance Isolation
Secure Store Database SharePoint core databases Content Databases Search Highly Transactional non-SharePoint DBs
Drawback Lose the central management in a single SQL Server
Management Studio window
SharePoint Server Performance Tier isolation vs. Location Proximity Requirements
Separation via vLAN Less chatter Increased hop count
Collocating SharePoint in a single vLAN Increased chatter Lower hop count
Key take away Know your network, determine your topology based upon
traffic & requirements
SharePoint Server Performance Load balancing your App Tier
Know your load Scale based upon need, not perception
Find your choke point, then release the grasp
Don’t assume, validate!
SharePoint Server Performance
Load testing in your environment Example
2 Web Servers (4cores, 16GB RAM) using NLB 1 App Server (4cores, 16 GB RAM) 1 SQL Server Instance (16cores, 128GB RAM)
Simple CRUD operations Login, create list item, open item, modify item, save item, delete
item, log out
SharePoint Server Performance Load testing in your environment
Results Farm was completely non-responsive at ~500 concurrent users
Root cause Watching this test on the server side we found that we were immediately CPU
bound. Conclusion
Add CPUs or Web Servers to the farm to handle additional load
…and now its time for…
SharePoint Server Performance
Governance & Troubleshooting Determine tolerance for custom solutions
Encourage Sandbox Solutions Require SPDisposeCheck Require SPMonitored Scope If you don’t have a Dev/QA Environment, you don’t
have a Production Environment Never test patches in Production Educate on the Developer Dashboard
SharePoint Server Performance
Governance & Troubleshooting Never accept a solution that is not a
WSP Respect your users, or you won’t have
any Limit the number of Farm Admins Minimize Server Sprawl Audit your environment regularly Survey your users regularly Engage your Executive Sponsorship
References Jason’s Blog Sentri, Inc SharePoint Foundation Logger
http://www.sharepointlonghorn.com http://www.sentri.com http://spflogger.codeplex.com My Article on SharePoint Pro
http://www.sharepointpromag.com/content1/topic/sharepoint-performance-troubleshooting-141506/catpath/sharepoint-server-2010 Cornelius J. van Dyk’s Blog
http://www.cjvandyk.com/blog Eric Shupps’s Blog
http://www.sharepointcowboy.com SharePoint Server 2010 Hardware and software requirements
http://technet.microsoft.com/en-us/library/cc262485.aspx
SharePoint Server 2010 Capacity Management: Software Boundaries and Limitshttp://technet.microsoft.com/en-us/library/cc262787.aspx
Capacity Management and Sizing Overview for SharePoint Server 2010http://technet.microsoft.com/en-us/library/ff758647.aspx
Capacity Planning for SharePoint Server 2010http://technet.microsoft.com/en-us/library/ff758645.aspx
Performance Testing for SharePoint Server 2010http://technet.microsoft.com/en-us/library/ff758659.aspx
Storage and SQL Server Capacity Planning and Configurationhttp://technet.microsoft.com/en-us/library/cc298801.aspx
Performance and Capacity Technical Case Studieshttp://technet.microsoft.com/en-us/library/cc261716.aspx
Monitoring and Maintaining SharePoint Server 2010http://technet.microsoft.com/en-us/library/ff758658.aspx
Performance Testing for SharePoint Server 2010http://technet.microsoft.com/en-us/library/ff758659.aspx
The Load Testing Kit for Visual Studio Team System http://technet.microsoft.com/en-us/library/ff823731.aspx
Web Capacity Analysis Tool (WCAT) http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1466
Jason’s contact & vitals Microsoft vTSP
virtual Technology Solutions Professional SharePoint Foundation Logger
http://spflogger.codeplex.com Web: www.sentri.com Blog: www.sharepointlonghorn.com Twitter: @sharepointlhorn LinkedIn: www.linkedin.com/in/jasonhimmelstein
Author of Developing Business Intelligence Apps for SharePoint http://bit.ly/SharePointBI