
| email this FAQ to a colleague
Q: One of our servers has been slowed to a crawl over the past week. We've finally identified the problem: it's only running 12 threads in its thread pool, but the processors are not maxed out. Effectively half of the srever is sitting idle while clients wait to get serviced! I've set the ProcessorThreadMax to 30 (it's a dual-processor box), set the ThreadCreationThreshold to 5, and the RequestQueMax to 60, yet thenumber of threads in the pool remains pegged at 12. Any ideas? The processor utiliization is around 60% for each processor-- not nearly maxed out. There's no reason that I can think of why more threads are not being created. Any ideas? A: Turns out the problem was that the ThreadCreationThreshold is not "how many pending requests cause the creation of a new thrread' but a part of the equatiion (Pending Requests) / (Thread Creation Threshold) = # of threads. So if you raise the thread creation threshold, you'll get FEWER threads. We set
the thread creation threshold to 1, and now our server is blasting through anything that the internet can dish out. Where before we were pegged at 60 clents waiting, we were just able to retire 90 waiting clients in less than 10 seconds. - Justin Grant |