> [Scaling Socket Apps]
>> We have scaled this up beyond belief. The Async stuff works very, very
>> well.
>
> Very interesting read. Non-inuitive. But you can't argue with the
> results.
Yea, there is that.
> I am puzzled as to how you were able to support 100,000 TCP connetions
> under NT though.
Well, we've never tried under Windows NT. The O/S we do our heavy lifting on
is Windows 2003 Server.
> AFIAK the system only allows 10,000 by default without registry tweaks.
As a socket client application, there are default limits in the system. As a
socket server application, these limits don't really exist. Perhps on NT,
but not (that I remember) on Win2K, and certainly not on Win2k3.
> And then beyond around 75,000 you start to run into paged pool limits and
> vtables locked in RAM by the OS.
You sure do. Each Async socket takes a certain amount of non-paged memory.
On a "big" 32 bit machine (4 gb of memory) we can do about 50k simultanious
sockets. Things don't really scale that well there.
The key phrase there is "32 bit machine". On 64-bit hardware the limits are
much, much higher.
> Unless dot net does something different under the hood from how we used to
> do it in C++.
Nope. Same thing. 64-bit hardware is just bigger and badder:
http://www.coversant.net/bigiron.PNG
Low-end 64-bit hardware is practical today. A dual-core AMD machine with 4GB
of memory and Windows Server 2003 x64 installed will do just fine for big
socket apps.
> We support 100,000+ connections on the C++ app. Will be interesting to
> see what the C# app can do. If this works well we have a much larger app
> that I will make the move with as well. The entire managed architecture
> is very, very appealing to me after years of off by one crashes. :)
If it's a simple socket server, you should be fine. When I was playing with
scalability limits (by writing nothing more than an Async Echo Server), the
limits were very high. I didn't document it anywhere, and don't really
remember what "very high" is though. :(
I do remember "very high" was such that finding enough client firepower to
max it out was difficult.

Signature
Chris Mullins