SharePoint being such a large platform, immaterial of whether it is implemented in a smaller or larger organization, can suffer some issues related to performance and connectivity. We often hear of expectations that a page must load within X number of seconds when in reality, this is difficult to predict. However, it is not impossible to achieve these numbers provided we understand how to optimize SharePoint’s performance.
This blog provides guidance that will help optimize performance improvement in SharePoint. The features include improving performance at the server level and planning performance for loading the pages at the client side.
Performance planning for SharePoint On-Premise
Factors governing performance improvement for SharePoint On-Premise farm includes capacity management, software limits and boundaries.
- Capacity management is broadly divided into four factors: latency, throughput, data scale, and reliability
– Latency is the time duration between user-initiated action & time until the last byte is transmitted to the client browser
– Throughput is the number of concurrent requests that a server farm can process
– Data scale is the content size that a system can host
– Reliability is the ability to meet targets set for latency and throughput
- Software limits and boundaries are broadly classified into boundaries (absolute limits), thresholds (default set values) and supported limits (tested values)
A new farm topology based on a set of predefined server roles, named as MinRole, has been introduced in SharePoint server 2016. Improved performance and reliability, simplified deployment and better capacity planning are the key benefits using MinRole.
Simplified Deployment – By deploying the farm in a MinRole topology, one can focus on which functionality is required, and SharePoint manages the rest.
Optimized Performance – Microsoft has optimized SharePoint Servers 2016 and 2019 for the MinRole farm topology, to reduce network latency.
Farm Scalability – MinRole ensures better predictability and prescriptive capacity-planning guidance. Thus, when more servers are added, SharePoint automatically configures the additional servers.
Performance guidance for SharePoint Online portals
Considering the growing need for SharePoint Online and Office 365, it has become essential to improve the page load time for SharePoint Online portals. A few parameters which help us define SharePoint Online performance are:
- Capture metrics like application initialization timing, page load time, external request/response time, search execution time and warnings/errors at browser page
- Manage data request patterns and APIs like parsing data and using proper cache mechanisms, optimizing queries using REST API calls instead of client-side CAML queries
- Use Content Delivery Networks (CDNs) for external frameworks like jQuery and Bootstrap and considering Azure/O365 CDNs for hosting files
Tuning SharePoint Performance
The various types of connections to be considered for tuning performance are the browser, network and server connections. However, it is also important to capture metrics at each connection level like page load time, round trips required per page load, service connections used and the number of concurrent users accessing the site/page.
A few points to be kept in mind for performance improvement scenarios at page level are to use proper navigation options, minification, and bundling of JS/CSS files, using Content Search web parts wherever necessary, usage of CDNs, delay loading of controls/images as required and image optimizations on the page.
Minimal Download Strategy
Minimal download strategy (MDS) is the ability to download only specific portions of the page, where the response can include markups and styles/scripts.
The key benefits of using MDS are that fewer amount of data is downloaded per page request and only specific regions of the page need to be updated, which in turn results in the smaller amount of processing/page load time.
In order to MDS, SharePoint feature must be enabled, and updates need to be done to the master pages, JS files, controls and web parts.
MDS flow when a user navigates the site. Ref: https://docs.microsoft.com/en-us/sharepoint/dev/general-development/minimal-download-strategy-overview
Tools for Application Level Analysis
Various tools are available to check the performance of SharePoint pages, few of them include Page Diagnostics for SharePoint, Browser developer tools, Fiddler, HTTPWatch, Apache JMeter, etc. Most of the tools have free licensing and can be downloaded from the respective sites.
These tools are essential to capture metrics like page load time in milliseconds, with specific details of the amount of data loaded in Mb/Kb, the time duration between requested resource and response, etc.
- Page diagnostics for SharePoint is available as a browser extension to Chrome and provides details of diagnostics and network trace.
- Browser developer tools can be viewed by hitting F12 on the browser like IE, Firefox and Chrome, and provides the metrics like time taken to load each of the resources – JS/CSS/images, etc.
- Fiddler tool is available for download from Telerik web site. This tool provides the statistics and timelines with various options to filter.
- HTTPWatch has both free and paid versions to download and provides similar diagnostics and timelines.
- JMeter is an open source software used to analyze performance by simulating load using different load types. It can test the performance of different application types like HTTP(s) in the web, SOAP/REST services and many more. It also provides a graphical report presentation.
SharePoint is a very widely used application with numerous capabilities and hence addressing the performance of SharePoint applications is vital for the usage of end users. Pre-planning, design, and analysis are the keys to keep the optimal performance of the applications.