|
From: Mark M. <Mar...@ij...> - 2004-04-16 16:59:43
|
Ricardo, | define(`confMAX_DAEMON_CHILDREN', ...) | | Mark, should we limit it in RX ? I know on your docs you suggest to set | it to 20, but what would be a magic formula to define it ? I assume it | should be based on the number of amavisd-new child processes (which | should match queue runners) and Max No. of msgs per connection ? Here the charm of dual-sendmail setup is most apparent. The MaxDaemonChildren sendmail option is almost completely independent from the number of amavisd-new child processes. The MaxDaemonChildren in MTA-RX should be sufficiently large so that most of the time all incoming mail connections can each get its own sendmail process which is willing to accept the mail trickle. These smtp server processes are relatively lightweight (hopefully sharing the program code in memory), so they don't cost much. The upper limit is the number of sendmail receiving processeses the host can comfortably handle, including disk I/O they produce. One may set this value high and observe the usual number of incoming parallel SMTP sessions during normaly busy hours, then set the limit comfortably above that value. This applies to Postfix as well (maxproc for smtpd service on port 25). The number of amavisd-new child processes and the number of queue runners is another matter. Since content filtering (especially with SA enabled) is CPU and memory intensive, the number of content filtering processes is limited by the host power and its memory. Never have this number so high that swapping occurs, or that the time for each individual mail check gets too large, say over a couple of seconds. Long content checking times can also increase the locking contention on the SA Bayes database. A very rough rule of thumb may be that the MaxDaemonChildren can easily be 10 times the number of content filtering processes. Mark |