This rule tracks the number of busy threads inside the IIS thread pool, and identifies times whenever the thread pool becomes exhausted.

Why is this important

The IIS thread pool maintains threads designed to rapidly dequeue requests from the application pool, spending the minimum amount of time processing the request before returning to pick up another request from the HTTP.SYS request completion port.

If the request needs significant processing, e.g. by a dynamic application framework such as ASP.NET, Classic ASP, PHP, and so forth, it is usually transitioned to a separate thread pool by the application framework.

If IIS threads become blocked, the IIS thread pool may fail to dequeue incoming requests fast enough, leading to queueing and requests rejected with 503 Service Unavailable.


This rule will automatically determine the reason for IIS thread pool exhaustion, and provide a code-level information on stacks that were responsible for blocking IIS threads.

Proactive guidance

If you are on a Business plan, we may offer additional guidance to help you optimize your application and improve its performance. To find out more, contact support.

More resources

Want to learn the best techniques for managing your IIS web server? Join our how-to newsletter.
Want to get the best tool for troubleshooting and tuning your web apps? .

Build your skills

Get performance best practices straight from our IIS & ASP.NET experts:

How-to newsletter: 1-2 emails/week with expert IIS & ASP.NET tips.