Application Pool Performance

Worker Processes

Maximum number of worker processes in web garden

This setting determines the maximum number of worker processes permitted to service requests for an application pool.

TipA Web Garden is an application pool with more than 1 worker process.

Limit the kernel request queue

This property reports to the Universal Listener how many requests to queue up for an application pool before rejecting future requests. When the limit for this property is exceeded, IIS rejects the additional requests with a 503 error (Service unavailable).

TipFor Windows Server 2003 SP1, the default value of this property has changed from 4000 to 1000. You should consider keeping this value low, for performance reasons.

Shutdown worker processes when idle

This property specifies how long (in minutes) a worker process should run idle if no new requests are received and the worker process is not processing requests. After the allocated time passes, the worker process should request to be shut down by the WWW Publishing Service.

Caution!If the value of this property is less than the value of Recycle by elapsed time property, IIS sets both properties to their default values.

CPU Monitoring

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.

TipSetting 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.

TipSetting 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.

NoteCPU 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).

ImportantAll settings that are not enabled or specified for an IIS entity will be set to IIS Manager defaults when installing the built package. If you don't enable any of the options from this tab, the same default IIS settings will be applied as when creating this entity from IIS Manager. To completely deactivate an option after installing the package simply enable it in this tab and set it to 0.

NoteYou can read more about application pools in this article.