Troubleshoot SharePoint on Premise High CPU Usage 100% – Part 1

Introduction

For one of my customer, I had to troubleshoot a high CPU Usage because of w3wp.exe process taking most of the cpu (100%), causing slowness.

How to find out the root cause ? Which component is causing the problem ?

After reviewing the component installed on the farm, i couldnt understand what consume so much resource on the web application.

After analyzing what is loaded, I found out that the cause was SharePoint code itself and knew that I needed to update the platform to the last Cumulative Update.

This article explains how to collect data while the cpu is high, in part 2 we analyse the collected data.

Action plan

  1. Check which application pool take the resource by running “appcmd list wp” in CMD.exe ran as .exe (resource)
  2. Check which custom application are installed (WSP, third party), could those create high cpu usage ?
  3. Use SharePoint Developer Dashboard to analyze which component take the most time
  4. If you still can’t identify, you might use the following post series using DebugDiag2, the Microsoft tool to troubleshoot performance issue, system crash etc

Analyze high CPU peak usage

  1. First step is to wait for the cpu to be high, while it is high, collect memory dump using DebugDiag (Procedure Below)
  2. Once done, you can analyze what is loaded in memory and see which server side code is loaded, this allow to find the root cause. This will be explained in the next article.

Collecting logs procedure

Download DebugDiagx64.msi from
https://www.microsoft.com/en-us/download/confirmation.aspx?id=49924&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1
Install DebugDiagx64.msi
Run from windows start menu
  1. Open DebugDiag Collection and select Performance.


  2. Select Performance Counters and click Next.
  3. Click Add Perf Triggers.
  4. Expand the Processor (not the Process) object and select % Processor Time. Note that if you are on Windows Server 2008 R2 and you have more than 64 processors, please choose the Processor Information object instead of the Processor object.
  5. In the list of instances, select _Total.
  6. Click Add and then click OK.
  7. Select the newly added trigger and click Edit Thresholds.


  8. Select Above in the dropdown.
  9. Change the threshold to 80.
  10. Enter 20 for the number of seconds. You can adjust this value if needed, but be careful not to specify a small number of seconds in order to prevent false triggers.


  11. Click OK.
  12. Click Next.
  13. Click Add Dump Target.
  14. Select Web Application Pool from the dropdown.
  15. Select your application pool from the list of app pools.
  16. Click OK.
  17. Click Next.
  18. Click Next again.
  19. Enter a name “Dump” for your rule and set the location to D:\Dump
  20. Click Next.
  21. Select Activate the Rule Now and click Finish.
Wait 10 min and close the program
This will collect files in the folder D:\OneSpaceDump
Once dumps collected, follow the part 2 to analyze and find the root cause problem


Advertisements

2 thoughts on “Troubleshoot SharePoint on Premise High CPU Usage 100% – Part 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s