Apache 1.3.12 + Solaris 2.7 gives fork errors under high load

Apache 1.3.12 + Solaris 2.7 gives fork errors under high load

Post by jkiste » Thu, 10 Jan 2002 06:49:29

I've currently got 680 webs (not including ServerAliases) running off of
Apache 1.3.12 on an UltraSparc 360 with 256MB memory, 2048MB Swap, which is
running Solaris 2.7

Right now, I have to have "MaxClients" set to 150.  If I bring the number up
to 500 (or even 200), where I'd like to have it, The system goes out of
control slow, and I have a very hard time even gaining shell access.  When I
do get into the machine, almost everything I try (ps, df, top, etc) yeilds
an error similar to: "fork: not enough space".

as soon as I kill apache the issue resolves.  If I start apache, the problem
comes back after just a few minutes.

I understand that this is not specifically an Apache problem, and it just so
happens that Apache is what is taking most of the resources, but more of an
Operating System problem... but I'm still looking for help.

My best guess is that the system is not allocating the right amount of
memory to internal processes, but I dont even know how to tell.

using top, I see right now, that the CPU  95.2% idle,  0.4% user,  1.4%
kernel,  3.0% iowait,  0.0% swap
I see the memory: Memory: 256M real, 3808K free, 1036M swap in use, 1136M
swap free

server being the servername,  This is what I configured with:
./configure \
--prefix=/home/server/www \
--enable-module=cern_meta \
--enable-module=info \
--enable-module=status \
--enable-module=expires \
--enable-module=mime_magic \
--enable-suexec \
--suexec-caller=webguy \
--suexec-userdir=cgi-bin \
--suexec-docroot=/home/server \
--suexec-uidmin=100 \
--suexec-gidmin=10 \

Here is an example of what each of the 680 webs has in the config file:
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /home/server/www2/www.domain.com/web
User username
Group groupname
CustomLog logs/virtual/www.domain.com/www.domain.com.20020108.log combined
ScriptAlias /_vti_bin/_vti_adm/
ScriptAlias /_vti_bin/_vti_aut/
ScriptAlias /_vti_bin/ /home/server/www2/www.domain.com/web/_vti_bin/
ScriptAlias /cgi-bin/ /home/server/www2/www.domain.com/web/cgi-bin/

- please carbon copy replies to jkister at netreach.net




1. Apache 1.3.12 and Solaris 2.7 Problem


We're running apache 1.3.12 on Solaris 2.7 and the httpd daemons
don't seem to die off. Even after their TIME_WAIT they just hang
around forever stoping new fresh processes from running. The
result is the web server simply crawls as it's hit it's maximum no.
of web processes (150 in this case). Some do die I guess because
after 30 seconds you'll get a connection (unless it's picked up an old
one?). When this was running on Solaris 2.6 everything was fine. I
then recompiled exactly the same config for Solaris 2.7 and this are
not so fine. I've even tried running the 2.6 compiled version in case
it worked ! Has anyone else seen this ? I'm not sure if it's Solaris 2.7
or httpd which is to blame ! I did try dropping the tcp_time_wait_interval
in the kernel with no luck.

Any help appreciated.

Cheers, Paul
Paul Matthews

2. panic book

3. Error compiling Apache 1.3.12 on Solaris 7 (Intel)

4. Set Ksh under KDE

5. Apache 1.3.12 - Solaris 8, Ultra 1 Bus Error

6. Sun collapsing

7. Error getting accept lock - Apache 1.3.12 Solaris 9 ApacheJServ/1.1

8. Help ! diskette system for Linux

9. Can't load any CGI or PERL in Win32 version of Apache (1.3.12)

10. Problems installing Apache 1.3.12 & ApacheJServ 1.1.12

11. Apache 1.3.12, RH6.2, error, port 80 already in use

12. Apache 1.3.12 access.log logging error

13. Apache 1.3.12 LoadModule error