SharePoint 2010 has many new service applications. This presentation takes a look at how those services impact performance and sizing, as well as some availability strategies for SharePoint 2010.
8. What is availability? No single point of failure Performance – horrible performance can mean it’s not available Disaster recovery SLA (.9999, .999, etc) SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
9. What is availability? No single point of failure SharePoint Services: IIS (WFEs)? Search crawl? Search query? Excel Services? OWA? Workflow? Visio? Word automation? Performance Point? Etc. Network: NICs? Routers? load balancers? Etc. SQL & Storage: RAID? Mirroring? Shipping? SAN? Etc. Datacenter: redundant across DCs? 2 WFEs != Redundant! SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
10. What is availability? 10,000 users DOES NOT EQUAL 2 WFEs, 1 app server, and 1 SQL server EVERY TIME!!!! Performance considerations: STOP LOOKING AT # OF USERS! Instead focus on what services, and RPS RPS – cue your Business Analyst You could host 1 million SharePoint users on a laptop if you only get 1 RPH! THEN TEST IT!
11. 2007 vs 2010 2007: Index server wasn’t scalable 2010: TONS MORE SERVICES! Know what services you enable, and why because there can be huge performance implications. EXPECT TO BUY MORE HARDWARE (or dedicate more virtual servers and virtual resources) Some throw out 2x, but you can do better than thumb in the air here SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
16. Search Admin Component processes config changes (search administration) no redundancy but search still works if it goes down Admin Database MSSSecurityDescriptorstable ALWAYS in RAM on SQL redundant through mirroring - search stops if DB goes down SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
17. Search Crawl Component Supports Active/Passive Can have multiple active crawlers Even multiple per server where CPU is main limitation Crawl Database Crawl Queue – only one crawl component can crawl a host at a time! Get around this by adding more crawl components. Place on dedicated spindles (target 3.5k – 7k IOPs) Optimize speed by adding DBs and using Host Destination Rules to allocate hosts to a particular DB. Tends to reset SQL cache (isolate this DB!) SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
18. Search Query Component Supports Active/Passive Can have multiple active query severs Even multiple per server where CPU is main limitation Note – 1 per index partition Index partitions “partition” of the index as a whole Max 10m items SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
19. Search Query Processor Initiates query to query servers and partitions Performs meta data lookup w/ Property DB Gets results and… Performs security trimming Calculates relevancy finalizes result set and returns results State-less. Can add this role wherever, just note CPU costs and memory costs. RAM – ensure you can dedicate size of MSSSecurityDescriptorstable wherever this component exists. SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
20. Search Property DB Index Partition assigned to a prop DB Prop Db can have multiple partitions. Max 50m items Largest search DB Recommendations: Keep 33% of critical tables in SQL’s RAM (MSSDocsSDIDs, MSSDocProps, and MSSDocresults) Dedicate spindles that can support 7k IOPs SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
23. Search Summary of recommendations: Pair Active/Failover components – try to avoid having 2 active components of same type on same server. Use host distribution rules Deploy DBs on dedicated spindles with guarantee of 7k IOPs Again, crawl DB does not play nice! Have 2 cores available for each active component, and one additional core for each failover Pair with other services with great caution! SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
24. FAST Search Medium farm supporting roughly 40m documents. PROBLEM? NOT REDUNDANT! Courtesy - technet
25. FAST Search How many index columns? 1 index column= roughly 3.6TB of indexed content. Content size * multiplier / 3.6 = # of index columns (round up and account for growth) Eg: 10TB * .5 = 5 TB 5TB / 3.6 = 2 index columns (rounded up for growth) Multiplier .3-.5 for binary (Word, PowerPoint, etc) 3-5 for .txt 1.5 – 2.5 for HTML SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
26. FAST Search Minimum to achieveredundancy for indexingand query matchingcomponents, given 10TB of binary content. Note – the other components are stateless and can go anywhere, but depending on hardware may want more than 4 to accommodate SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
27. FAST Search However, index performance is inhibited because of potential query load, so add another search row to free up the index server.
28. FAST Search Each query matcher component can handle 5-50 QPS (depending on features) – so scale out to match your expected QPS
29. FAST Search However, each index server can handle about 35 docs / second, so you may want to add more index columns to meet freshness requirements:
30. FAST Search Don’t forget about redundancy in your SharePoint Farm! People search (>= 2 crawl components and query components) FAST SharePoint Connector SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
31. Excel Services &PowerPivot 1 Technology, 2 tools: PP for SharePoint & PP for Excel Load Balancing Round robin Health based Mem first CPU second Cached files will greatly affect the selection of the final target server File size relates to RAM on client/server 2x ratio (if file is 1GB, account for 2GB ram) PP is NOT claims aware - can't run on a web app that is setup as claims - only works in Classic mode SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
32. Excel Services & PowerPivot Recommendations (especially for PP): 8GB RAM minimum – reality, a lot more! 4 procs, 16 cores Obvious conclusion – PHYSICAL SERVERS Trusted file locations (PP “Side Effect”) Maximum workbook size Allow external data (enables PP) Warn on refresh Web app settings Max upload size SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
33. Performance Point HEAVY MEMORY UTILIZATION! Cache, cache, cache! Examples - App objects, Query metadata, Filter data, Query results, Rendered view There are a bunch of PPS counters to look at cache effectiveness Cache overview Standard first big hit However, rendered views are usage based Each PPS server is responsible for it's own cache Cache settings Can toggle how long things are cached, including User identity and privileges Filters However - SSAS data is ALWAYS up to date because PPS can look at the timestamp on the data to see if it changed. All other datasources are cached until cache dies. SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
34. Performance Point Data retrieval ONLY AS PERFORMANT AS THE DATA LAYER UNDERNEATH A scorecard is individual row(s), eg for each row in the card you have a query – so BE CAREFUL! SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
35. Office Web Apps Takes an Office doc and converts it to HTML/CSS/JS/Images Check cache > SA gets doc > SA spins up WP to convert > store in cache > Render Includes Word, PowerPoint, and Visio services RESOURCE INTENSE! Worker process for each session Each doc cached in memory and temporarily to disk SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
36. Office Web Apps Enable Word, PP, Visio service app on 2 or more app servers Recommendations: Word & PowerPoint worker processes Recommendation - run 2 worker processes for each core (configured via PS) Configure OWA Cache site and expiration period Configure Cache database location (which SQL server) SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
37. Workflow Where is workflow processed? WFE if <= threshold (default is 15 WF across farm) Timer job > threshold Start the OWSTimer service (every 5 minutes): Workflow timer batch size: default is 100 Batch size is per content DB SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
38. Workflow Recommendations: Set threshold to 0 forcing workflow load onto OWSTimer Set-SPFarmConfig –WorkflowPostponeThreshold 0 Start WF service on 2+ app servers, keeping WFEs free of load Cranking up batch size seems wise, but be careful! SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
39. Sandboxes PLAN WHERE TO START THIS SERVICE! Recommendations: By default there is only 1 worker process per server For optimal performance change this to # of cores +1 via PowerShell SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
41. Clustering Server instance redundancy: Note: NOT database redundancy SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
42. Mirroring Data & Server instance redundancy: Synchronous or Asynchronous (think latency/bandwidth) SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
43. Clustering AND Mirroring SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
44. Log Shipping Send log and forget Good for test and stage environments Good for PATCHING! (next slide) SharePoint FREEWARE www.PhilWicklund.com SharePoint CONSULTING www.RBAconsulting.com
50. Health Analyzer and Score Health Analyzer “Health Rules” – OOB and build your own Health Score Farm scored 1-10, Request throttling starts at 10 User requests last to be throttled PUT requests never throttled
51. Health Score Health Score Example: CPU cycles/sec 0-500 score = 2 501-1000 = 5 1001-1500 = 8 > 1500 = 10(start throttling HTTPrequests) Customized via PowerShell Score returned in Response Header
52. Usage Logging Default this is not enabled. Only enabled via PowerShell. Configure what counters to log, and how often. What’s logged? Requests (type, source, machine, user), and any counters (think perfmon, like RPS, queue depth, etc) Logging DB Can grow very large Needs its own monitoring strategy OOB retains 14 days by default, and extended up to 31 days. Build a warehouse and cubes!