Author: Phil Pennock Date: To: Костырев Александр Алексеевич CC: exim-users Subject: Re: [exim] exim+dspam:Connection reset by peer
On 2012-05-30 at 13:06 +1100, Костырев Александр Алексеевич wrote: > I'm trying to squeeze max perfomance from all of the components, so i
> use exim without any limitations.
This situation is an example of why trying to go as fast as possible can
lead to going slowly.
> /var/log/exim/main.log
>
> 2012-05-29 17:31:28 1SZFxo-0004rG-3r == test3@???
> R=dspam_router T=dspam_spamcheck_socket defer (104): Connection reset
> by peer: NULL: Connection reset by peer
You're overloading dspam to the point where it can't handle the rate.
Perhaps you can tune it to raise the size of the listen queue?
Make sure that you set the various queue_only_* options to spool the
data without trying to deliver immediately, and then make sure that you
don't have the -q/-qq options set too high, so that Exim won't start
too many queue runners at once. Then your messages flowing into dspam
will be rate-limited by the number of queue-runners you have.
Eg, to speed things *up*, you'd use split_spool_directory and run the
queue-runners from cron instead of Exim, with a script which runs queue
runners per spool sub-directory.
To slow down, you make sure you're not invoking too many queue runners
at once.
To go faster with a slow component, you run a pool of the slow component
and tell Exim to use multiple addresses, with "hosts_randomize" set to
distribute the load "probably evenly" over the available backends.