I'm running an Apache server for about 250 web sites (amd64 FreeBSD
8.2-RELEASE #0, 12 GB RAM)
I've setup few limits to ensure things won't go wild:
RLimitCPU 300 600
RLimitMEM 10485760 52428800
RLimitNPROC 10 50
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 20000
</IfModule>
Everything is working ok. But recently I've read things like this in my
system logs:
kernel: maxproc limit exceeded by uid 80, please see tuning(7) and
login.conf(5).
kernel: maxproc limit exceeded by uid 80, please see tuning(7) and
login.conf(5).
During those warnings, I've around 40-60 httpd process (way below the
limit of 512), and I was only making 1 request to a new CGI script.
RLimitNPROC is supposed to apply only to process forked by Apache, not
to httpd processes. So my unique CGI process is way under the limit of
RLimitNPROC.
I have an audit trail (from auditd, an OpenBSM implementation) that
shows that the CGI is the only process forked by Apache.
I have a "kernel: maxproc limit exceeded" each time I make a GET on the
CGI URL, but the request works, and the CGI does reply.
any idea?
patpro
--
A vendre ! http://www.patpro.net/blog/index.php/2008/01/12/133