www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Franchuk <ri...@transpect.net>
Subject Re: general/1107: Runaway httpd process under heavy load
Date Sat, 13 Sep 1997 07:21:29 GMT
On Sat, 13 Sep 1997, Dean Gaudet wrote:

> Linux kernels by default are maxed at 512 processes, and half of that is
> the per-userid limit.  There's a define you can tweak in
> /usr/src/linux/include/linux somewhere NR_TASKS I believe.  You can crank
> it up to 4000 or so in the 2.0.x series.
> I've looked at the code for select in the kernel, and EFAULT should only
> occur if you pass it a bogus pointer ... which we'd have a hard time doing
> considering we're passing it a statically allocated thing. 
> When I get a chance I'll try a heavy load with lots of CGIs just for kicks
> and see what happens.

AHA! /usr/include/linux/tasks.h has it.

You wouldn't believe how long I looked for that before jimmying it with csh.
;) Time to get a new pair of glasses, looks like.

re: bogus pointer - Hmmm... it'd be a relatively trivial thing (from here,
anywaysy) to make a debug-compiled process lock up and attach gdb to it,
maybe see where that pointer is pointing to. I've got an odd hunch that task
limit may somehow affect the fault status of the select statement, so when
bombarding your test machine, see if you can make it run some cgis and get
into that 'cannot spawn child process' area. Maybe you'll have more luck
getting it to lock.

Or, if you want to get fancy, make the child kill itself with SEGV and dump
the core someplace. ;)

 |                                          |
 |  Rick Franchuk  -  TranSpecT Consulting  |
 |_______                            _______|

View raw message