Efficient final message disposition (was Re: [Mailman-Developers] Requirements for a new archiver)

J C Lawrence claw at kanga.nu
Thu Oct 30 20:20:35 EST 2003


On Thu, 30 Oct 2003 18:20:56 +0100
Brad Knowles <brad.knowles at skynet.be> wrote:
> At 8:41 AM -0800 2003/10/30, Chuq Von Rospach wrote:

> One of them is recipient sorting by average delivery time over the
> past week (probably want a decaying geometric mean), which would
> require tracking log data on a per-recipient basis.

While I don't disagree, this is really an MTA's job, not Mailman's.
This is why I've been doing log analysis of MXes and routing mail to
customised outbound MTAs on the basis of responsiveness, since early
2000.  Adaptive MX routing is great stuff.

> Another is two-level message handling, by configuring the MTA for the
> initial delivery attempt to use very low timeouts, but then to fall
> back to a secondary MTA (or MTA pool) that uses more standard timeouts
> for those sites that are slower.

Yup.  I did it at the first level with an initial SMTP proxy which
routed based on MX response records pulled from a DB.

> Perhaps in its current form, that is true.  However, not all sites are
> using sendmail 8.12, and of the ones that are, most are probably not
> using it in a manner that is more suitable for mailing lists.

I'm generally of the view that Mailman should do opportunistic domain
sorting and per-MTA customised VERP handoffs (because nobody has
standardised VERP across MTAs), and beyond that to back off.  Mailman's
job is to get the outbound mail into the MTA's spool as quickly as
possible, wrapped in transactions (ie RCPT TO bundles) that are friendly
to efficient processing, and that's it.

We're not in the game of second guessing the MTAs.  That way lies wasted
time and madness.

> However, given the issues you've mentioned, it would probably be a
> good idea to be able to turn off selected "bulk_mailer" type features,
> so that you can let the MTA do more of it's job better -- if it is
> configured to do so.

There are thresholds for covering up for broken software.  There are
also thresholds for covering up for SysAdm negligence or oversight.
You've got to pick where you stop accepting the problem. Ideally we
should be resilient and friendly to both.  Realistically we need to do
something reasonable and not worry too hard about the rest.

Priorities.

Mailman's primary performance problems are not at the MTA hand off.  MTA
configuration and tuning for mailing lists is only a minor art.  There
is not-inconsiderable documentation and understanding of the field.  A
US$2K commodity box subjected to moderate tuning efforts using readily
available documentation can sustain 2,400 outbound deliveries per
minute.  You do the arithmetic.  In a perfect world that maps out to 3.4
million per day.  Cut that under half for queue injection overhead other
crap and you're still talking a million deliveries per day for a US$2K
host.[1] A million messages a day already puts us above the 99th
percentile for list server audiences.  I'm not really concerned about
that problem.

Where Mailman's performance hurts is in the handling of the list
configs, especially for lists with very large memberships rosters and in
queue runner performance and overhead (try watching queue runner's
system resource profile in v2.1 for lists with > 50,000 members).  For
me those are the obvious low hanging fruit, and those are the points
that will help not just the performance hounds, but also the lower 80%
who are running under-provisioned under-configured under-admined
multi-purpose boxes who want Mailman to be a bit more reasonable and
forgiving about their not-so-brilliant systems.

  [1] That's of course assuming reasonable sustained queue size and
  responsive MXes.  However, those are separate problems and ignoring
  MTA-specific behaviours (like Exim's active hatred of large queues),
  the methods and systems to segment and tame those problems are fairly
  well known.

--
J C Lawrence
---------(*)                Satan, oscillate my metallic sonatas.
claw at kanga.nu               He lived as a devil, eh?
http://www.kanga.nu/~claw/  Evil is a name of a foeman, as I live.



More information about the Mailman-Developers mailing list