Hi everybody,
I think we are all convinced that a multithreaded application performs
and scales better than a multi-processes one on NT 4.0.
I am wondering whether the situation is the same on Win2K.
Several reasons to my question:
-
We are handling some pretty big concurrent user load and it is not
rare to have 200-300 threads running within our server process. I think
we are pushing the envelope a little bit here. -
Virtual Addressing space limitation. Because we deal with large
databases, we have to constantly map/unmap file sections within a 2
gigabytes space. Having each process own its entire 2 Gig space would
help and use 8 gig RAM machines a little better. I know 4.0 has some
extensions to access by hand an additional 4Gig space, but this looks a
little clunky to me. -
Fragility. I confess we do have bugs that we have not nailed yet.
When we encounter a problem, the whole server process goes down. Having
multiple processes would limit the damage to one user instead of 200.
Does anybody has a feeling/experience with Win2K and multi-processes:
o Named semaphores vs. critical sections for synchronization (that must
hurt!). I guess we can mitigate this a little bit with
InterlockedIncrement() kind of things, but, still…
o Shared memory accesses
o Process scheduling overhead (is it less painful than 4.0?)
o Large number of handles (1,000 files opened by 100 users becomes
100,000 handles on a multi-process app, as opposed to 1,000 for a
multi-threaded one)
Thanks in advance for any insights or advice.
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com