[Mailman-Users] Mailman performance / sends per hour

Brad Knowles brad.knowles at skynet.be
Fri Jul 25 23:36:55 CEST 2003

At 5:01 PM -0400 2003/07/25, Jon Carnes wrote:

>  Right! Given decent equipment the MTA is the primary worry.  For best
>  performance you really want to use an optimized MTA like Postfix.
>  Postfix shuffles slow responding mail sites to the end of the queue so
>  that they don't hold up the outflow of mail.  The increase in efficiency
>  this gives you is tremendous and far outweighs any other gains.

	Actually, what postfix does is handle multiple copies of the 
message being transmitted to separate domains in parallel.  This 
helps ensure that fast sites further down the list don't get hung up 
by slower sites that come earlier.  However, there is a limit to this 
parallelism.  Mailman could help this process by tracking the average 
delivery time per recipient, and then sorting the recipient list when 
handing the messages to postfix -- fastest first, slowest last.

	You could further tune this process by making the initial 
delivery attempt time out very quickly (like, five seconds instead of 
the typical two minutes), and then have "reaper" processes set to 
retry delivery with a more normal timeout.  But this is an MTA tuning 
process, and would differ depending on which MTA you use.

	Overall, postfix is pretty well optimized for use with mailing 
lists, but the architecture does guarantee a certain minimum amount 
of overhead that cannot be escaped.  With some work, you can create a 
sendmail configuration that will avoid even this level of overhead, 
and can be considerably faster.  But it does take more work to get 
there, whereas postfix will do a pretty good job out-of-the-box.

>  The next best thing you can do is use a nice fast LVD disk subsystem
>  (maybe even a RAID) for your /var volume. MTA's follow a specification
>  that ensures the delivery of mail, even if the server goes down.  This
>  means that each and every transaction is written somewhere on disk.  So
>  moving mail around takes a very large number of read and writes! We say
>  that mail servers are disk I/O bound.

	Increasing filesystem performance is a big issue.  The best 
choice here is with a *BSD operating system and "softupdates", 
because that will avoid writing files to disk if they are created and 
then deleted very quickly (they're safely queued in memory before 
being written to disk, and the creat() is removed if the file is 
unlink()'ed before the data has been flushed).

	Using Linux-style asynchronous writes will cause the data to 
still be written to disk, even if in a more efficient manner.  This 
is not as good as avoiding the disk operations entirely.

	But a Journaling extent-based filesystem with a hashed directory 
structure (such as SGI XFS) would be a big step forward over what 
most people are likely to have.

>  So, you really didn't give us enough information to guess at how well
>  your server will do. Still you can probably count on at least 2k
>  messages/minute if you have a SCSI disk subsystem and use something like
>  Postfix.

	Certainly, a high-speed multi-user oriented disk subsystem would 
also help, and here SCSI is preferred over ATA/EIDE (it's the 
multi-user part that SCSI does so much better).

>  BTW: if you choose to use Sendmail, I have some tweaks that let it run
>  in an quasi-optimized mode (similar to Postfix).  You will find them
>  described here:
>    http://www.trilug.org/~jonc/mailserver/PartIII.html

	Anybody who is serious about this topic should read the book 
_Sendmail Performance Tuning_ by Nick Christensen (see 
<http://www.jetcafe.org/~npc/book/sendmail/>).  Of course, I'm a bit 
biased, since I did the first public talk on this topic at SANE'98 
(see <http://www.shub-internet.org/brad/papers/sendmail-tuning/>) 
which Nick quickly followed (see 
<http://www.jetcafe.org/~npc/doc/performance_tuning.pdf>), and I was 
a technical reviewer of his book.

	With regards to the tuning of MTAs for performance specifically 
with mailing lists, make sure you read Rob Kolstad's paper "Tuning 
Sendmail for Large Mailing Lists" at 
and Strata Chalup's paper "Drinking from the Fire(walls) Hose: 
Another Approach to Very Large Mailing Lists" at 
Both of these papers were written before mailman existed (and before 
VERP existed), but most of the issues raised and suggestions made are 
still relevant today.

Brad Knowles, <brad.knowles at skynet.be>

"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
     -Benjamin Franklin, Historical Review of Pennsylvania.

GCS/IT d+(-) s:+(++)>: a C++(+++)$ UMBSHI++++$ P+>++ L+ !E-(---) W+++(--) N+
!w--- O- M++ V PS++(+++) PE- Y+(++) PGP>+++ t+(+++) 5++(+++) X++(+++) R+(+++)
tv+(+++) b+(++++) DI+(++++) D+(++) G+(++++) e++>++++ h--- r---(+++)* z(+++)

More information about the Mailman-Users mailing list