I’ve been spending some time pushing the limits of The Server Framework, my IO Completion Port based socket server framework, to see how many connections my servers can handle and what happens when system resources run out. Earlier postings on the subject are here and here.
This morning I fired up one of my older server boxes and ran the server on that rather than on my dev box. It effortlessly managed 64000 concurrent connections.
Previously I’ve had problems getting above ~30000 connections. The machines I’ve been testing on have been my main development box and my laptop (both are Windows XP and both have 1GB ram). This morning I ran the server on a Windows 2000 box with 650MB ram and the server managed around 64000 concurrent connections before it hit the non-paged pool limit. It looks like it actually hit the limit this time, having 129MB of non-paged pool allocated, rather than just stopping early (as my Windows XP machines seem to do).
So, the question now is what’s wrong with my Windows XP systems?