MailmanWiki

4.11. What about performance?

There are many aspects to tuning a Mailman system, but they essentially resolve to:

  1. Mailman
  2. MTA
  3. Supporting infrastructure.

Taking them in order:

Tuning Mailman is normally not needed. The only real control which is of significance is SMTP_MAX_RCPTS in ~mailman/Mailman/mm_cfg.py (see ~mailman/Mailman/Defaults.py for details). The optimal value will vary depending on your lists, the distribution of their memberships across domains, and the responsiveness of the various domain's MXes. Typically the sweet spot is in the range of 2 - 5. See Chuq von Rospach's analysis of VERP expense in FAQ 4.12 at 4.12 What about VERP? for further details.

MTA tuning is incredibly subject to local conditions, MX demographics of your lists, list load and traffic patterns etc. For MTA-specific tuning tips see MTA Performance Tuning Tips for EXIM, MTA Performance Tuning Tips for Sendmail, MTA Performance Tuning Tips for Postfix, and MTA Performance Tuning Tips for Qmail.

There are however a some critical common aspects:

EXIM

  In Exim, the value to edit is receiver_verify_hosts. See
  README.EXIM in the Mailman distribution, or
  http://www.exim.org/howto/mailman.html for details.

POSTFIX

QMAIL

SENDMAIL

    From: http://mail.python.org/pipermail/mailman-developers/2001-August/009329.html

    You can do this without modifying your sendmail files at all.
    Instead, in your startup script, add:

        /usr/sbin/sendmail -bd -ODeliveryMode=defer \
               -ODaemonPortOptions=Name=MSA,Port=NNNN,M=E,Addr=127.0.0.1

    Where NNNN is some port number not otherwise used (you can test
    if something's in use by doing "telnet localhost NNNN" -- if it's
    refused, there's no daemon listening)

    This sets up a sendmail process listening to the alternate port,
    in DEFER mode, but set to talk only to the localhost interface,
    so it's not accessible by anyoneother than your local machine:
    no open relay problems.

    To make mailman access that port, add this to your mm_cfg.py:

        # define alternate SMTP port
        SMTPPORT = 1313

MTAs are inherently IO bound, especially disk IO bound. There are a number of things you can do at the system level to help alleviate this:

Converted from the Mailman FAQ Wizard

This is one of many Frequently Asked Questions.

MailmanWiki: DOC/4.11 What about performance? (last edited 2022-01-07 20:28:02 by msapiro)