Microsoft SharePoint is a web application commonly used for document and file management, collaboration, search, business intelligence, social networking and other functions.  With its widespread use, internal and external customers are dependent upon SharePoint’s availability to get things done.  Below are the top 5 causes of a slow-responding SharePoint application, and how you can proactively identify these problems and fix them before end users even know there is an issue.

 

1) Network devices and bandwidth:  The most obvious reason for network latency is often bandwidth capacity.  However, latency issues can still exist even in a large bandwidth network, particularly if the *devices* involved in the interconnections – switches, routers, firewalls, etc. are introducing the latency. At its core, these devices are all ‘store and forward’. When the ‘store and forward’ takes longer than optimal, latency is introduced. Locational issues are caused by distance (the round trip takes a while) or due to a location’s network infrastructure where the internal WAN may be slow.
2) Volume of requests/application usage: Each and every click is recorded as a transaction.  If the volume of transactions exceeds the available resources, it causes application latency.  An increase in the number of concurrent users also can cause responsiveness to suffer. A high memory usage, low disk cache memory or a storage I/O may cause latency in loading components required by SharePoint.
3) Load time for integrated components.  SharePoint allows adding widgets, applications like Java, SQL. An issue or delay in loading the components may cause delay and latency issues.
4) Database issues.  SharePoint heavily relies on the database infrastructure. I/O problems could indicate a problem with the disk.  Latency could also be caused by slow queries.

 

To proactively detect these issues, here is some guidance on what to monitor in your SharePoint environment.
Monitor the network.  This includes utilization of each interface as well as the network latency and packet loss for each node. 
Monitor web transaction response times from multiple locations.  With a good website monitoring tool, you can determine if a slow page is locational or if the problem is native to the application. 
Monitor page load times for the entire transaction.  By monitoring all the pages/steps in a transaction is necessary to pinpointing where the user experience breaks down.

sharepoint pages.PNG

 

When looking at an individual page, it’s good to have a waterfall chart to view which element is consuming the most time to determine if the issue is related JavaScript, DNS lookup, etc.

sharepoint waterfall.PNG

Monitor database performance & query times.  Because a database issue can be the cause of a SharePoint performance problem it is important that your server management tool can monitor key performance metrics of your database.   Key metrics include lock wait time, fragmentation, and deadlocks among others.  You also want to monitor how long it takes for SQL queries to perform to get an indication if the query written requires a change to improve performance.

SQL monitoring.PNG

 

Monitor underlying server resources for CPU, Memory and Disk constraints. CPU utilization issues can indicate underperforming hardware or perhaps a virtual machine has insufficient resource allocation.  It is also very important to keep close tabs on disk I/O and disk latency to understand how storage performance is impacting your application.  This is a major issue with heavy data intensive applications like SharePoint.
Monitor specific SharePoint performance metrics such as:
-SharePoint request wait time.  As the number of wait events increase, page-rendering performance will deteriorate.  If wait time is consistently trending up, you should consider adding additional web servers to support your application.
-SharePoint requests rejected.  If there are any requests rejected (showing a 503 HTTP status code), there are insufficient server resources, and you should consider implementing additional web servers.
-SharePoint Worker process Restarts.  Any worker process restarts can indicate a problem such as a memory leak, access violations or process settings.  Investigate process restarts to prevent issues.

-Requests per second.  This provides an indication of current throughput of the application.  If this metrics gets out of a certain range, you will need to add additional resources to cope with the increased load.

 

The SolarWinds Web App Monitoring Pack provides the ability to monitor web application page load times and provides out-of-the-box monitoring for SharePoint 2013, 2010 and 2007. Try it free for 30 days.