David
Thu May 03 05:34:30 CDT 2007
On May 2, 8:51 pm, Rob <rmfalco...@discussions.microsoft.com> wrote:
> We are having some type of performance issue with a website that is
> collecting statistics.
>
> Periodically, there is a very long time for a document GET on the site. Like
> 900ms.
> I was told that there is a way to tweak IIS to allow more threads to serve
> multiple IIS requests. There are a lot of requests coming in and I would
> appreciate if anyone can tell me how I might tweak the number of threads or
> processes that might make the performance better.
> Thanks.
Can you define what you mean by "better performance". Do you want to
improve request latency and/or throughput? Furthermore, can you
explain why you think that IIS has insufficient threads to service
multiple requests concurrently?
IIS is optimized for asynchronous IO, which can efficiently handle
tens of thousands of simultaneous requests using less than 10 threads
to achieve optimum request latency and throughput.
In general, this is how you want to think about performance:
- If you want to improve latency, then you need to fix the code that
you are running on IIS. If the slow resource is a file, make sure it
is a file on the local filesystem and turn off Anti-Virus and other
such tools that drain file-download performance.
- If you want to improve throughput, then you need to fix the code
that you are running on IIS to be faster and have lower lock
contention.
- Tweaking # of IIS threads and processes do not improve performance.
Tweaking those settings increase concurrency -- which is NOT the same
as performance. Concurrency can mask some performance deficiencies in
user code but only up to a point of diminishing returns.
//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//