Thursday 21 May 2015

CPU throttling Under IIS Application pool

Maximum CPU use
This property configures the maximum percentage of CPU time (in 1/1000ths of a percent) that the worker processes in an application pool are allowed to consume over a period of time as indicated by the "Refresh CPU usage numbers" property. If the limit set by this percentage is exceeded, an event is written to the event log and an optional set of events can be triggered as determined by the "CPU Action" property.

Tip: Setting the value of this property to 0 disables limiting the worker processes to a percentage of CPU time.

Refresh CPU usage numbers
This property specifies the reset period (in minutes) for CPU monitoring and throttling limits on the application pool. When the number of minutes elapsed since the last process accounting reset equals the number specified by this property, IIS will reset the CPU timers for both the logging and limit intervals.

Tip: Setting the value of this property to 0 disables CPU monitoring.

Caution!The value of this property must be greater than the interval between logging operations, otherwise IIS will reset counters before logging has occurred, and process accounting will not occur. Because process accounting in IIS uses Windows Job Objects to monitor CPU times for an entire process, process accounting will log and throttle only applications that are isolated in a separate process from IIS.

When application pool worker processes exceed their CPU limit
This property configures the action(s) that IIS takes when Microsoft Windows NT job objects run in case the worker processes exceed their CPU limit. The following options are available:

Take no action - No action is taken except that a warning is written to the event log when the CPU limit is exceeded.
Kill worker processes - Application pool worker processes that exceed their CPU limit will be forced to shut down.
Throttle - The application pool worker processes will be throttled at the limit specified.
Throttle under load - The application pool worker processes will be throttled at the limit specified only if other applicattions require the CPU. If the CPU is idle the application pool may consume more CPU activity, exceeding the limit set for it.

Note: CPU Throttling is supported starting with IIS 8.0, for older versions the correspondent fallback option will be set instead (i.e. take no action or kill worker processes).

Reference URL:-
http://www.advancedinstaller.com/user-guide/iis-app-pool-performance.html
http://blogs.iis.net/shauneagan/cpu-throttling-iis-7-vs-iis-8
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-cpu-throttling-sand-boxing-sites-and-applications