IIS high CPU usage

Created:

2016-11-16 12:39:40 UTC

Modified:

2017-05-24 02:24:26 UTC

2

Was this article helpful?


Have more questions?

Submit a request

IIS high CPU usage

Applicable to:

  • Plesk for Windows
  • Plesk 11.0 for Windows
  • Plesk 11.5 for Linux

Symptoms

Health Monitoring show high IIS CPU usage

Resolution

Open the Task Manager - sort all processes by CPU time. You will get the PID s of the consuming processes. Then, using Process Monitor from Sysinternals filter the output for those PID s - you will get the paths which are queried by these processes. They are actually home directories of the domains.

In Plesk Panel:

Domains -> -> Websites and domains -> Dedicated IIS Application Pool for Your Websites -> IIS Application Pool -> Switch on CPU monitoring -> set ' Maximum CPU use % '

Then go to

IIS Manager -> Application Pools -> -> Advanced settings -> Limit Actions

And choose most suitable action.

It can be:

'NoAction' or 'KillW3wp' -- IIS 7.x (Windows Server 2008)

'Throttle' and 'ThrottleUnderLoad' -- IIS 8 (Windows Server 2012)

Doing nothing in the case of NoAction , or killing the worker process for KillW3wp . By default for application pool Limit Action is ' NoAction 'When the process is using a high amount of CPU, and after some time IIS realizes that they would use more than their limit within <Limit interval> minute, so it kills the process for the remainder of the Limit Interval. The process is prevented from restarting until the Limit Interval expires. During this time, any user requests will fail with a HTTP 500 error. After the Limit Interval is reached, the process is allowed to restart, it uses a high amount of CPU again, and it gets killed again. This cycle will continue to repeat for this application that uses high CPU.

Unlike IIS 7 where the only solution was killing W3WP, in Windows Server 2012 we have two additional throttling options: Throttle and ThrottleUnderLoad . The Throttle option will always restrict the application to the specified amount of CPU utilization, while the ThrottleUnderLoad option will allow the process to use more than the specified amount of CPU, provided that there is no contention for CPU resources.

Cause

Lack of hardware resources, heavy load and/or improperly designed application

Have more questions? Submit a request
Please sign in to leave a comment.