"Richard Blewett [DevelopMentor]" <richard at nospam dotnetconsult dot co
dot uk> wrote in message news:uU**************@TK2MSFTNGP02.phx.gbl...
| "Michael Nemtsev" <ne*****@msn.com> wrote in message
| news:9c**************************@msnews.microsoft .com...
| > Hello Cowboy (Gregory A. Beamer),
| >
| > Take into accout that they say the 25 is the maximum number if thead
that
| > can give u visible performance.
| > Increasing that number of thread don't give u any advantage,
| > notwithstanding the system size and complexity.
|
| I think thats possibly a bit of a generalisation. For example, ASP.NET
| increases this value to 50 by default. Surely it depends on what the
| appliction is doing, how much contention there is for shared resources and
| that kind of thing.
|
| For example, if I had a remoting server (remoting dispatches calls on
thread
| pool threads) and those remoting calls were accessing discrete parts of a
| database or separate files on the file system why would limiting the app
to
| 25 concurrent calls be a good thing and what would prevent those calls
from
| being multiplexed higher by increasing the maxiumum umber of threads in
the
| pool?
|
| Regards
|
| Richard Blewett - DevelopMentor
|
http://www.dotnetconsult.co.uk/weblog
|
http://www.dotnetconsult.co.uk
|
|
Richard,
In the remoting scenario (and ASP.NET) , the requests are handled by the
Completion port threads not on the worker threads from the thread pool.
You can check this by calling ThreadPool.GetAvailableThreads.
In a remote server application of mine where I have 50 clients
simultaneously calling a remoting server, I get the following values for the
thread pool threads:
Max worker threads = 50, available = 50
Max I/O threads = 1000, available = 995
Note that this was taken on a dual CPU box (hence the 50 workers), see there
are no worker threads taken, the number of IOCP threads varies between 2 and
6, but this highly depends on the task, but I never saw more than 10-12 IOCP
threads running on a dual CPU box.
Willy.