Monitoring and Building for Sharepoint Farm Performance
Total Page:16
File Type:pdf, Size:1020Kb
Monitoring and Building for SharePoint Farm Performance Sean P. McDonough Microsoft MVP Chief Technology Officer Bitstream Foundry LLC Download the SPTechCon Mobile App! Search for SPTechCon in your App Store and download the 2018 Mobile App to stay connected throughout the entire event. • Conference and Session Feedback • Get up-to-date show details • Reference speaker profiles • Take notes and download presentations • Connect with other attendees • Find exhibiting sponsors and much more! What We’ll Be Covering 1. Farm Environments 2. Getting a Solid Start 3. Tools and Monitoring Servers 4. Page Performance Monitoring 5. Questions & Answers 6. (LOTS of) References Farm Environments Farm Environments Yes, I said farm, not stamp • Subtle distinction, but it means we’re likely on-premises … • No SharePoint Online / Office 365 • Unless you’re on a “farm in the cloud” • Why on-premises? • Significant surface reduction for monitoring in the cloud • It’s “someone else’s” problem (i.e., a value-add for consumers) • Administrative APIs very limited vs. on-premises • Limited tools (no perfmon, developer dashboard, etc.) • In short: we can’t get at the counters and logs we need! Farm Environments Some on-premises assumptions I’m making for this session: • The big question: are you virtualizing? • Virtualization affords many options • Virtualization provides many ways to destroy performance • My assumption: you are virtualizing your environment • Within the datacenter and beyond it • Easier than ever to build farm interdependencies and distributed environments • Application and customization options push connections beyond the farm • My assumption: we are focusing on basic (end-user) SharePoint performance Getting a Solid Start Getting a Solid Start “An ounce of prevention is worth a pound of cure.” When you have the luxury of starting from scratch, you can get the basics right: • VM Product Configuration • Virtual Machine (VM) Setup • Operating System Configuration • SQL Server Installation Getting a Solid Start VM Product Configuration • Treatment of Memory • Amount of memory actively used and swapped is configurable • Depending on product, oversubscription is possible • Your goal should be 1:1 • What if I can’t do 1:1? • Minimize swapping • Swapping degrades performance Getting a Solid Start VM Product Configuration • Virtualization Options • Avoid oversubscription on processors and cores – nothing is free! • Understand what you’re enabling and avoid going crazy to avoid potential performance implications Getting a Solid Start VM Product Configuration • Virtualization Options • Avoid oversubscription on processors and cores – nothing is free! • Understand what you’re enabling and avoid going crazy to avoid potential performance implications Getting a Solid Start VM Product Configuration • Virtualization Options • Avoid oversubscription on processors and cores – nothing is free! • Understand what you’re enabling and avoid going crazy to avoid potential performance implications • Do you really know what Intel’s VT- X/EPT extensions are? Getting a Solid Start VM Product Configuration • Virtualization Options • Avoid oversubscription on processors and cores – nothing is free! • Understand what you’re enabling and avoid going crazy to avoid potential performance implications • Do you really know what Intel’s VT- X/EPT extensions are? • VMs inside of VMs … Getting a Solid Start VM Setup • Creating virtual disks • SharePoint is an I/O monster, especially when it comes to SQL Server • Big question: what is the storage technology in- use? Traditional hard drives? SSDs? Combination? • Next question: where are the bottlenecks likely to occur? Drives? Controllers? Elsewhere? • Our goal: avoid too many (abstraction) layers; each layer adds overhead Getting a Solid Start VM Setup • Setup a new 100GB HD: Common Example • Create a new 100GB drive • Place on traditional hard drive(s) • Drives are in a RAID-5 configuration • Space allocated on demand • What you don’t see … • Cost of parity calculations • Cost of virtual translation • Cost to “auto-grow”/allocate real drive space • Latency at every step Getting a Solid Start VM Setup: ways to improve the scenario • Understand common RAID configurations. • RAID-5: cheaper, but costly parity calculations • RAID-10: better performance, more expensive Getting a Solid Start VM Setup: ways to improve the scenario • Understand common RAID configurations. • RAID-5: cheaper, but costly parity calculation • RAID-10: better performance, more expensive • Go “direct to disk” with pass-through options • Hyper-V – “pass-through” storage • VMware – “mapping” a disk Getting a Solid Start VM Setup: ways to improve the scenario • Understand common RAID configurations. • RAID-5: cheaper, but costly parity calculation • RAID-10: better performance, more expensive • Go “direct to disk” with pass-through options • Hyper-V – “pass-through” storage • VMware – “mapping” a disk • Pre-allocate virtual disk space • Initialize drive space before it’s needed • This will chew up real drive space! Getting a Solid Start VM Setup: ways to improve the scenario (summary) • Remove unnecessary sources of latency • Allocation at run-time also hurts a lot. Pre- allocate your storage space. • Stay off of USB drives in performance-critical SLOW! scenarios. USB latency hurts. Getting a Solid Start VM Setup: ways to improve the scenario (summary) • Remove unnecessary sources of latency • Allocation at run-time also hurts a lot. Pre- allocate your storage space. • Stay off of USB drives in performance-critical scenarios. USB latency hurts. • Avoid VMDKs and VHDs by passing-through to dedicated storage. Getting a Solid Start VM Setup: ways to improve the scenario (summary) • Remove unnecessary sources of latency • Allocation at run-time also hurts a lot. Pre- allocate your storage space. • Stay off of USB drives in performance-critical scenarios. USB latency hurts. • Avoid VMDKs and VHDs by passing-through to dedicated storage. • Software RAID kills performance in so many ways. Use hardware RAID. Getting a Solid Start VM Setup: ways to improve the scenario (summary) • Remove unnecessary sources of latency • Allocation at run-time also hurts a lot. Pre- allocate your storage space. • Stay off of USB drives in performance-critical scenarios. USB latency hurts. • Avoid VMDKs and VHDs by passing-through to dedicated storage. • Software RAID kills performance in so many ways. Use hardware RAID. • Realize that multiple virtual drives on a single drive array degrades performance! Getting a Solid Start VM Setup: ways to improve the scenario (summary) • The great equalizer – solid state drives (SSDs) • Dramatically better performance hands-down • No moving parts • Performance varies for SSDs • Choose your protocol: SATA (AHCI) vs. NVMe • M.2 is a new form factor, not a new standard • Limits (theoretical) • SATA (300MB/s) or (600MB/s) (SATA 2 or 3) • NVMe (2GB/s) or (4GB/s) (PCIe Gen 2 or 3) • The role of so-called “hybrids” Getting a Solid Start Operating System Options: Paging File • Various strategies for managing • System managed • Manual allocation(s) • Remove entirely • I prefer to assign an allocation manually • Create a dedicated paging drive • Pre-allocate space in VM environment • Size is 1.5x the amount of memory Getting a Solid Start Operating System Options: Paging File • Various strategies for managing • System managed • Manual allocation(s) • Remove entirely • I prefer to assign an allocation manually • Create a dedicated paging drive • Pre-allocate space in VM environment • Size is 1.5x the amount of memory • Alter Windows paging options • (note: be sure to set no paging for C:) Getting a Solid Start Operating System Options: Miscellaneous • Visual Effects • “Adjust for best performance” • Turns off animations and other CPU-wasting eye-candy Getting a Solid Start Operating System Options: Miscellaneous • Visual Effects • “Adjust for best performance” • Turns of animations and other CPU-wasting eye-candy • If your host drives are removable … • Review removal policies for each drive • Will likely have policies that optimize for performance – typically by enabling caching. Getting a Solid Start SQL Server is the performance lynchpin in nearly all SharePoint environments. Luckily, there are some pretty basic adjustments that will help improve performance: • Instant File Initialization … • Storage Selection … • Drive Formatting … • Data and Log Assignment … • TempDB Configuration … • DB Sizing and Autogrowth … Tools and Monitoring Servers Reasons Why do we monitor performance? Reasons typically fall into one of the following three categories: • We are seeking to understand why our SharePoint environment is underperforming • Troubleshooting! • We want to ensure that we have enough headroom to scale and grow as desired. • Capacity! • We want to quantify changes we’ve made to our farm in terms of performance • Improvements! Troubleshooting We’re looking for the source of a performance problem. Where should we start? Performance issues typically originate in at least one general sub-system: • Memory • Network • Processor (CPU) • Storage (Disk) Of course, SharePoint problems often muddy the waters by spanning more than one category Tools Recommendation: start with monitoring the server(s) over time to gain an understanding: • First understand “the normal state” of a server • Then observe the server when a problem occurs Tools Recommendation: start with monitoring the server(s) over time to gain an understanding: • First understand “the normal state”