On Thu, 2001-08-30 at 18:24, Greg Ward wrote:
> Are his assertions true? Ie., does Exim perform all 1600 MX DNS lookups
> before starting to deliver mail? Can 1600 MX DNS lookups cause a 20 min
> delay? (That seems possible if 1) our DNS cache [we use dnscache on
> localhost] is not much help, and 2) Exim does all the MX DNS lookup
> sequentially.)
Basically these assertions are right, although a somewhat simplified
view of the world.
To put it another way tuning mailing mailing lists requires a little
work.
> And does Exim have an option to send a separate message
> to each recipient? If so, is its use advised in situations like this?
> (These are not large messages, and there are 923 unique domains among
> this list's 1618 subscribers.)
Forcing messages to be split will (normally) reduce latency, it will
also increase overall processing load, and typically multiply the spool
space required by the number of recipients. [this last one is a real
pain when someone manages to inject a multi-megabyte message into a
many-thousand recipient list]. Additionally there are issues on how
precious/costly bandwidth is to you.
Running a local (on host or on LAN) dns caching server is a *big* win -
although the first message of the day will still have the lookup hits,
so an announce list with a message or so a week will still have that
problem.
Exim processes are basically single threaded - no overlapping DNS
queries (even if you did so there is no guarentee this would actually
not get sequentialised by your DNS server).
Anyhow, for Mailman, there are some bits that should be set up:-
In Defaults.py:-
Delivery - DELIVERY_MODULE = 'SMTPDirect'
Parallelism - SMTP_MAX_RCPTS = 500
You *really* should use the SMTP injection - for all sorts of reasons (I
still suspect the sendmail CLI interface of losing mail). I have the
SMTP_MAX_RCPTS set rather high here... it should be lower probably. I
would guess 50 or 100 would be about right but tuning of this depends
how desparate you are for low latency and how much resources you are
willing to commit (BTW its an upper limit and Mailman tends to balance
out the number of sessions - it also presorts stuff by extension, so in
general common stuff tends to stick together).
Make sure you don't do DNS lookups on rcpt addresses on localhost
injected mail - see
http://www.exim.org/howto/mailman.html
Check how often your queue runners for mailman run from their cron job -
if they only run every 30 minutes then getting deliveries starting in 20
is a huge acheivement and pretty lucky :-)
Also make sure you don't end up concentrating so much on low latency
that you lose sight of other efficiencys. You can alway make it always
queue stuff coming in and then get better session efficiency on a busy
list by putting multiple messages down a single SMTP session.
Nigel.