|
|||||||||||
|
[AMaViS-user] Postfix + Amavisd-new + Amavisd-milter
From: David Schweikert <david(at)schweikert.ch>
Date: Fri Jul 27 2007 - 08:15:49 EDT
I am using Postfix and am experimenting with the inline rejection of virus mails using amavisd-new combined with amavisd-milter. The reason for using the milter interface instead of smtpd_proxy_filter is that if you do inline rejection with smtpd_proxy_filter, you need to have as many amavisd processes as you have smtpd processes, which is really a problem. You can't also just limit drastically the number of concurrent smtpd processes because then they could be all blocked by slow clients. I guess that this is the biggest reason why Wietse does not recommend doing it for big sites. Combining amavisd-new with amavisd-milter could however solve this problem: there is only one small multi-threaded process that talks to each of the smtpd processes and a connection is done to amavisd only when all the data is ready. It means that you can have 100 smtpd processes and 4 backend amavisd processes... Also, note that you can't combine smtpd_proxy_filter with milters doing content filtering, which puts you in a position to choose between the two. There are however two small problems that I encountered:
The problem is that even though I properly limited the number of amavisd connections in amavisd-milter, amavisd does have a listen backlog (queuing of connecting clients) of maximum 5 clients. That is, if I have configured to use at most 10 amavisd processes and by chance 6 amavisd-milter processes try to establish a connection simultaneously, it will fail. That's why, it would be useful to have in amavisd a variable called $listen_backlog or something like that, which would allow you to specify the queue size for the listen sockets. amavisd would then just need to pass this as 'listen' parameter to Net::Server... Note that this is also not really an issue with inet sockets because of the way connections to inet sockets are handled: if there is no free space in the connection queue, the SYN packet is just dropped so that the client comes back later. With unix sockets, it is not possible to do that so the client gets immediately a connection refused. By the way: I am also getting better performance with amavisd-milter than with smtpd_proxy_filter: about 20% more mails per second.
Cheers
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ AMaViS-user mailing list AMaViS-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amavis-user AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 AMaViS-HowTos:http://www.amavis.org/howto/ Received on Fri Jul 27 08:29:31 2007 This archive was generated by hypermail 2.1.8 : Thu Aug 09 2007 - 19:50:41 EDT |
||||||||||
|
|||||||||||