httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Havard" <bri...@kheldar.apana.org.au>
Subject Re: newbie thread/process model question in hybrid server
Date Sun, 11 Jul 1999 13:57:36 GMT
On Sun, 11 Jul 1999 00:22:02 -0700 (PDT), Tani Hosokawa wrote:

>On Sun, 11 Jul 1999, Brian Havard wrote:

>> If a child's pool could be cleaned up after a segfault, is there much chance
>> of it working if the above occurs?
>
>If you've just had a segfault, I think it'd be far safer to just toss the
>entire shared memory space (and the process along with it) rather than
>hope that everything will be "OK enough" to proceed.  I mean, really... if
>somethings gone that awry in the process, chances are its tainted
>*something* that'll come back and bite you a couple requests down the
>line...

Maybe, maybe not. If the segfault is just an accidental NULL dereference then
no damage is done.

The problem is that if the shared memory space is the entire server, in the
case of single process / multithread, you lose all active connections. Even
in hybrid mode you lose a large number. If there's a chance to recover by
just killing the thread you may as well try.

My problem is that the only way to run multiple processes is to fork() and
doing so is extremely inefficient in OS/2 as it's not supported by the
kernel, it's kluged by the C library for unix compatibility. In the current
preforked model each server process consumes over 600k of memory because of
this. With the spmt mpm I'm working on it uses around 1MB plus 20k per (idle)
thread and performance is also up.

--
 ______________________________________________________________________________
 |  Brian Havard                 |  "He is not the messiah!                   |
 |  brianh@kheldar.apana.org.au  |  He's a very naughty boy!" - Life of Brian |
 ------------------------------------------------------------------------------


Mime
View raw message