In my first blog I wrote about SharePoint System Performance Health Checks beyond looking at CPU and Memory Metrics. In this blog, I cover deployment related performance health problems that I always check when looking at a SharePoint Installation. Especially after deploying new hardware, new sites, pages, views, custom or 3rd party Web Parts (e.g: from AvePoint, K2, Nintex, Metalogix …) it’s important to perform certain deployment sanity checks. While you may have nobody reporting issues in the moment there are several areas that you constantly need to check before they become a real problem.

Feel free to follow all my steps by either using your own tools or use Dynatrace Free Trial with our SharePoint FastPack.

Step #1: Optimize Connectivity Between Services

My first step is to analyze which components are involved when I navigate through SharePoint. Looking at the Transaction Flow (from Browser to Database) allows me to answer some key questions:

  • How much load is coming in and is that distributed correctly across my IIS Instances?
  • How many requests are actually making it to the SharePoint AppPools?
  • Which external services are we calling and how does that impact our response time?
  • Which databases are accessed and does that impact performance?
Transaction Flow allows me to understand how a request flows through the system, which servers, sites, databases and external services are involved and where there might be a bottleneck
Transaction Flow allows me to understand how a request flows through the system, which servers, sites, databases and external services are involved and where there might be a bottleneck

Step #2: Resolve any HTTP 4xx & 5xx

Often overlooked problems are deployment mistakes that lead to HTTP Errors. JavaScript files or images that are not correctly deployed can result in broken functionality on your SharePoint pages. Even though end users may not complain, these issues undermine design and negatively impact usability. Looking at your HTTP Response Codes allows you to understand which resources are currently not being correctly served.

Analyze which requests result in HTTP errors and therefore impact your end users. If they are deployment related, fix them before they impact too many of your users
Analyze which requests result in HTTP errors and therefore impact your end users. If they are deployment related, fix them before they impact too many of your users

Step #3: Eliminate Bad Web Parts

3rd Party (e.g: from AvePoint, K2, Nintex, Metalogix …) or custom developed Web Parts are heavily used in SharePoint installations. But what if they don’t work because you miss a configuration setting or the deployment went wrong? I always do a sanity check by looking at:

  • Exceptions happening during loading of a Web Part assembly. This tells me I made a deployment mistake.
  • Exceptions happening during execution of a Web Part when a page gets rendered, as it typically indicates a configuration issue of the person that put that Web Part on that page
  • Web Parts that that have very long execution times consume a lot of CPU or Memory
When a Web Part is not correctly deployed SharePoint will throw Exceptions like the one above. End Users will only see a blank area
When a Web Part is not correctly deployed SharePoint will throw Exceptions like the one above. End Users will only see a blank area
Configuration mistakes in Web Part settings can cause it to fail or run slow. Watch out for exceptions or slow executions triggered by Web Parts. Learn which page has this problem and fix it
Configuration mistakes in Web Part settings can cause it to fail or run slow. Watch out for exceptions or slow executions triggered by Web Parts. Learn which page has this problem and fix it

Step #4: Detect Authentication and Permission Issues

Incorrect permission settings or wrong role assignments lead to users not being able to access what they need to access. Analyzing HTTP Authentication and Permission problems allows you to better understand which users are having problems accessing which pages and pro-actively fix these problems or – in case they are not allowed to access that content – make it clearer on SharePoint that this is restricted for a good reason:

Analyze your HTTP 401’s: Figure out which pages users want to access but are not allowed to. Fix potential issues or pro-actively notify them that they are not allowed to see that content
Analyze your HTTP 401’s: Figure out which pages users want to access but are not allowed to. Fix potential issues or pro-actively notify them that they are not allowed to see that content

Step #5: Detect Missing Lists, Columns and Bad Filters

Over time it can happen that people build their own Views and Filters to make their life easier. Some may use a custom Web Part to visualize a list in a certain way. But sometimes the underlying lists get migrated, moved or simply deleted because they are no longer relevant. That leads to errors as these pages can no longer render that content – whether it is a whole missing list or a missing column. Watch out for these SharePoint exceptions that indicate access issues to lists and columns that no longer exist:

Watch out for these SPExceptions. Then located those pages where it is referenced, notify the page owners and fix it.
Watch out for these SPExceptions. Then located those pages where it is referenced, notify the page owners and fix it.
When Columns got deleted or renamed it is possible that filters or views don’t work anymore as expected. Locate these pages and fix the problem to reduce these types of errors
When Columns got deleted or renamed it is possible that filters or views don’t work anymore as expected. Locate these pages and fix the problem to reduce these types of errors

Next Step: Boost Performance to improve Adoption

I am interested to hear if you have your own deployment check steps. Please let me know and let’s share it with the SharePoint community.

As a next big step towards increasing the adoption of SharePoint in your organization you should focus on improving overall performance. In my next blog post in this series I will write about how to identify those pages that have the biggest negative impact on your users and how to go about identifying why these pages are slow and how to make them faster.

If you want to see some of my steps in action watch my 15 Minute SharePoint Performance Sanity Check Video.