> 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