dominic at lenny
May 19, 2011, 8:49 AM
Post #27 of 41
On 19/05/11 15:43, W B Hacker wrote:
> W B Hacker wrote:
>> Phil Pennock wrote:
>>> On 2011-05-19 at 12:35 +0100, Dominic Benson wrote:
>>>> On 19/05/11 11:50, Phil Pennock wrote:
>>>>> New queuing system refers to an approach to scale up the spool
>>>>> to something more queue-like, with segregated admin-defined queues
>>>>> "big_freemail_provider_x"). This is because while Exim is
>>>>> excellent at
>>>>> inbound mail, it doesn't always scale as well as some would like for
>>>>> outbound mail which can't be immediately delivered. Nothing has been
>>>>> done on this. Patches welcome.
>>>> Is this AKA bug 336? It sounds quite interesting, so I think I might
>>>> have a look at making some inroads into the problem.
>>>> If there are are any notes/thoughts about behaviour/config/use it
>>>> be handy to hear them.
>>> I wasn't aware of 336, but yes it's related.
>>> At present, there's split_spool_directory, which divides things up with
>>> one level of hashing, and then some people script their own
>>> launchers, running in parallel over sub-trees of the split spool
>>> of having the Exim daemon launch runners over everything, which compete
>>> with each other.
>>> Nothing more specific was discussed, that I either recall or find in
>>> minutes; we all understood the general problem.
>> Known bound, yes.
>> Not sure.
>> I stand on the position that WHEN one is loading Exim so heavily that it
>> HITS that sort of bound, one has far too many eggs in one basket
>> downtime-risk-wise, and should split that load over multiple Exim
>> ... on multiple separate boxen (generally cheap). Or at least usually
>> 'cheapER' than answering complaints from such a huge user base - or
>> rushing to a remote data center.
>>> If we use a new sub-directory of spool_directory to hold named queues,
>>> then previous Exim installs won't know of the content, but it should be
>>> fairly easy to script a rollback tool which recombines queues into the
>>> original queue.
> ..or doesn't need to do so at all...
> Here's a use-what-we-have scenario for high load and costly (leased?)
> Simulate a cluster of virtual servers, but w/o the noise and nuisance
> of jails or actual VDM's:
> - create a directory tree, preferably on separate devices/mounts, ELSE
> SSDD (Disk Drive, not Different Day) - optionally [sub] named per
> - install or clone exim1 thru exim(n), each with its executables and
> ~/configure renamed to suit, and its own listener IP, master script to
> control sequence & time-spacing of startup.
> These CAN (with same-group privs) all write to a common mailstore on
> yet-another mount to make life easier for POP/IMAP. Or those can ALSO
> remain separate - for similar load management reasons.
> Each of these umm, 'partitions'..? .. will have its own queue - hints
> db, logs (or not) .. everything else.
> So long as the BOX and OS have the guts to pull it anyway, the Exim
> queue issue - and all else - is compartmentalized to smaller chunks of
> the load...
> CAVEAT: Separate HDD spindles and head positioners, eg whole drives -
> de riguer. ELSE, solid-state aside - r/w load creates the enviable,
> but ultimately costly, sound of self-fornicating machinery of the
> sewing machine phylum.
> I'd even bet this has been done already...
I think the interesting use of multiple queues comes in when policy is
involved in deciding where to go: the simplest case where they are all
equal 'bins' is, as you say, readily served by having multiple
Obvious candidates would be a queue for messages that are relatively
time-sensitive (SMS-Email, host status alerts etc.), which should be
delivered ASAP even if there are 50,000 in the default queue. Or the
inverse, where there is a source of an occasional torrent of messages,
which should be delayed as necessary to avoid impacting the flow of
routine mail - say allowing queue_only in a per-spool context.
Another one would be a queue for relaying to a [local] server, which can
and is prepared to accept mail at a substantially higher rate than a
typical recipient, or where the same rate to remote domains would
negatively impact WAN performance. Or its inverse where there is a
particular recipient or set thereof that require a lower rate limit.
Another again might be to put messages with questionable spam status in
a queue with lower priority/frequency.
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/