Re: [exim] overall rate limiting?

Top Page
Delete this message
Reply to this message
Author: Tony Finch
Date:  
To: Peter D. Gray
CC: exim-users
Subject: Re: [exim] overall rate limiting?
On Tue, 23 May 2006, Peter D. Gray wrote:
>
> We have mail gateways, they take all incoming email, do virus scanning,
> spam tagging, greylisting, etc. After that, email is passed to UNIX
> machines running exim for routing. Recently, spam has been coming in in
> big bunches and some internal email arrives that way as well. It would
> be nice to set up the routing machines so that they process a fixed
> number of email messages per second. This would avoid large load spikes
> on our mail stores as mail floods in.


Exim doesn't have much in the way of interlocks between routing processes,
so it's hard to establish an overall rate limit. There are two things you
can do:

(1) Enforce the rate limits on the message stores, e.g. using something
like the following example from the documentation. You will want to adjust
the retry times on your hubs for email to your message store machines so
that they recover from overloads faster.

  defer
    message = Sorry, too busy. Try again later.
    ratelimit = 10 / 1s / $primary_hostname


(2) Use queue_domains to leave messages for your message stores on the
queue. You can then manipulate Exim's queue running controls to limit the
load on your message stores. You might do s bit better with a custom queue
runner; for an example see
http://www.exim.org/mail-archives/exim-users/Week-of-Mon-20050620/msg00162.html

Tony.
--
<fanf@???> <dot@???> http://dotat.at/ ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}