We’ve just released our new IIS Threading guide, which explains how the IIS thread pool works and how it affects your website performance.
It turns out that many people don’t have a clear sense of how the IIS thread pool relates to hangs and slowdowns in their website.
So, we took the opportunity to clear things up, and explain how IIS thread pool exhaustion or thread starvation actually affects IIS site performance.
503 Queue Full errors, or application pool queue buildup
Reduced RPS, especially for high performance websites
We also explain how most traditional hangs and slow loads are NOT caused by IIS threadpool issues, but instead the application-specific thread pools like the CLR thread pool, or the Classic ASP thread pool.
Monitoring IIS thread performance
We also show a simple way to monitor IIS counters to detect IIS pool issues.
If you have LeanSentry installed on the server, you can get a lot deeper into actually diagnosing most thread pool issues down to code (part of our application pool failure diagnostics). We’ll cover this well.
Optimizing the thread pool
In the guide, we dig into the specific causes of threading issues, that actually happen. This is based on monitoring 30K+ IIS websites with LeanSentry in the last decade.
Surprisingly, there are only a couple causes of thread pool issues that matter.
We’ll cover each one, and how to configure the IIS threadpool to resolve them.
Start in 100%-warm state, for best cold-start performance (even after a production restart or recycle)
Have zero startup delay (despite the warmup we just mentioned)
Yes, basically you CAN have your cake and eat it too.
Meaning your website is always warm, and can recycle without the users feeling it. This requires getting a lot of pieces right, and guide shows you exactly how to do that.
Best of all, it requires ZERO code.
Configure it all instantly with the ConfigureWarmup tool
We have a tool that will automatically configure the warmup configuration for your website. We’ll be releasing this tool shortly, but if you want it now, be sure to sign up for the Guide newsletter early access. This will allow you to get all our guides, and tools, before they are publicly released online.
We also discuss in detail WHEN you should restart IIS or recycle your application pool, and when you shouldn’t … and the better alternatives to restarting.
Improving IIS application pool availability
This post is part 1 of our upcoming series on how to configure IIS for maximum availability. The next guide will touch on how to configure your sites for 100% warm operation, with zero startup delays. We also have a tool called ConfigureWarmup that can do this for you automatically, and can even test your warmup performance. Stay tuned for these coming in the next two weeks.
It’s hard to believe that LeanSentry is turning 10!
During the last 10 years, we went from a collection of IIS troubleshooting tools that Mike wrote to help fix performance problems for large IIS sites like MySpace, Microsoft mobile, and Vevo to a comprehensive diagnostic service for troubleshooting and optimizing IIS websites.
What’s more, we’ve worked with thousands of companies and IT/developer pros like you to help solve real issues for real applications.
During this time, the number one challenge we’ve heard from our customers is the need for best-practice knowledge, and real-world skills on how to do troubleshooting and optimization. Even with a diagnostic service like LeanSentry, many customers still found it difficult to make the actual changes they needed to resolve their problems.
Get the guides
We personally worked with, and helped thousands of you to do this. Now, we’ll be sharing our techniques and tools we’ve used through the years to empower as many people as possible to run reliable, high performance websites on the Microsoft web platform.
We’ll cover topics like:
How to configure your IIS website for maximum availability,
How to save cloud hosting costs with smart optimizations,
What kind of IIS monitoring helps you fix website issues, and what is a waste of your time,
How to quickly recover from memory leaks, hangs, high CPU issues, queueing, and others,
Best practice application patterns ASP.NET developers can use to build faster, more reliable, more scalable apps,
Tools we use to all these things correctly, and much more…
We’ll also look at a bunch of things that DON’T WORK. There are a lot of those … including popular things that take down your website, break your webserver, or cause you to spend 4x more money on your cloud hosting.