You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by Andrew Donkin <ar...@waikato.ac.nz> on 2006/03/07 01:04:14 UTC
Re: prefork: server reached --max-clients setting, consider raising
it messages
> After upgrading to 3.1 from 3.0 we are starting to see the following
> error messages in our logs "prefork: server reached --max-clients
> setting, consider raising it"
Short version: try --round-robin on spamd.
We scan about 100k messages a day balanced (with -H) between two spamd
hosts. Traffic is bursty, and during the bursts a lot of spam leaks
through unchecked because spamc reaches its 120s timeout.
The really annoying thing is that a spamd child would continue to chew
on its message for a further few hundred seconds before classifying
it, only to find that spamc had already given up. That child could
have been working for another spamc. I wonder if there is a way for
spamd to catch SIGPIPE or some other message from the client, and
abort.
So I added --round-robin and things improved markedly. The logging
isn't nearly so good ("grep prefork:" without --round-robin draws you
a great load histogram) but far less spam is leaking through.
One theory is that spamd doesn't spawn children quickly enough to cope
with rapidly-ramping load. I was thinking of ripping out spamd's
one-new-child-per-second throtting to see if it improved matters, but
that experiment is way down the task list now.
Try --round-robin. Scale it up until your spamd hosts are maximising
the use of their RAM.
Note that your spamd hosts should be similarly capable - spamc will
split the load evenly between all of them, even when all children are
busy on one.
--
_________________________________________________________________________
Andrew Donkin Waikato University, Hamilton, New Zealand