1.24. What is the minimum recommended configuration for running Mailman?

Question:

What Operating Systems are supported by Mailman? Are there any OSes that are supported better than others? Can it run under a virtual machine configuration (e.g., VMWare)? What about hardware requirements - memory, hard disk, network, etc...?

General Answer:

In theory, Mailman should work on any hardware/operating system that fully supports the current version of Python (e.g., 2.3), and includes compatible web and mail servers. This does include virtual machine configurations. In practice, there are a wide variety of hardware/OS combinations that may (or may not) work well, but which have not been reported back to the maintainers of Mailman. It would be impossible to list all the possible permutations and combinations on either side.

More importantly, the requirements are going to depend on a wide variety of factors such as how many recipients you will have, how they are distributed on the receiving systems, how many messages they will send per day, how large those messages are, how much processing must occur for each message (e.g., content and spam filtering, etc...), whether or not you are making use of personalization and/or VERP, what kind of network and I/O latency and capacity you have, what kind of network and I/O latency bottlenecks there may be between you and your recipient users, and so on.

For a very small list, a Compaq Armda 4131T laptop with 48MB of RAM, 1GB hard drive, 133MHz Pentium-1 processor, add-in PCMCIA 10/100-Base T/TX network interface card, etc... might be completely suitable. For a very large list, you might have to distribute the load across a wide variety of systems, each designed to handle one part of the overall load - and each one a very large/high-capacity machine in its own right.

However, the choice of OS and hardware is usually more an individual choice of the person(s) who will be directly responsible for going and physically laying hands on the machine if something needs to be done at the console.

If you have a small mailing list and want to run your own system as opposed to using a mailing list hosting service (see <Do you offer Mailman hosting, consulting, or contractor services?>), you may want to take a look at providers that would give you a virtual machine account (provided with tools such as VMWare), and this is likely to be much less expensive than a getting a real machine at a co-location facility (e.g., $20/month as opposed to $50-250/month). If you prefer to go the co-location route, there is a good collection of links to various providers at <http://www.vix.com/personalcolo/>.

Operating Systems:

As one data point, the python.org Mailman mailing list server runs on Debian Linux (Mailman is written in Python, and an integral component of the Python project). As another data point, the extremely large Mailman mailing lists at freebsd.org are running on FreeBSD (obviously). In addition, Apple has recently upgraded lists.apple.com to run on an XServe Dual-G4 running Mac OS X Server that is around 95% idle, whereas it was previously served by a Sun E250 Solaris box that was frequently very overloaded.

If you want to get more information on running large mailing lists with Mailman, see <What is the largest list Mailman can run?>.

Note well:

When considering alternative operating systems, keep in mind that Mailman was written in a Unix/Unix-like environment, and the further your OS diverges from that concept, the more difficult it is likely to be for you to get Mailman installed and operating properly. In particular, some source-code level changes are currently necessary to get Mailman working under Cygwin even on the latest server-oriented Microsoft Windows operating systems. That kind of operating environment is not officially supported by the Mailman developers, at least not yet. If you have that kind of operating environment and you want it to be officially supported, you should submit patches to help us attain and maintain that goal.

Specific Examples:

For some hard numbers, I will quote from <http://mail.python.org/pipermail/mailman-users/2006-July/052078.html>

 I don't know what the absolute minimum requirements are, but keep in mind
 that you not only have to have memory and swap for Mailman, but also the
 MTA and the web server.
 Checking the memory requirements for just Mailman on a relatively
 low-traffic server that I have access to (running FreeBSD 5), I find that it
 currently takes about 130MB of virtual memory, and 26MB of real RAM, just
 for the Mailman stuff alone.
 The web server component looks like it's running about 77MB swap and 19MB
 RAM, while the MTA is 29MB swap and 11MB RAM.
 So, at an absolute minimum, this machine would require ~236MB swap space
 and ~56MB of real RAM, plus the OS requirements.  Given these numbers, I
 wouldn't try to run Mailman on a machine with less than 512MB of swap and
 128MB of RAM.
 &gt; Is it possible to minimize the memory usage by only running some parts
 &gt; of mailman (i.e., I only want the archive be viewable via the web
 &gt; interface).
 I don't think you're going to cut down those memory requirements by much,
 at least not for Mailman itself.  You might be able to find a web server
 that requires less swap and RAM, and an MTA that is lighter in
 requirements, but in my experience Mailman itself is pretty much the same
 all over.

In another message in this same thread (see <http://mail.python.org/pipermail/mailman-users/2006-July/052083.html>, Carl Zanzwig reports:

 FWIW, I'm running mailman on an openbsd system w/ 64M ram and 200M swap
 on an old Compaq P90.  Active software includes mailman (2.1.5), apache,
 postfix, and bind.  Not very speedy, but works well enough for &lt;50 member
 lists.
 top tells me:
 Memory: Real: 23M/47M act/tot  Free: 11M  Swap: 41M/200M used/tot

Conversely, the message which got this most recent round of discussion started was from Tomasz Chmielewski (see <http://mail.python.org/pipermail/mailman-users/2006-July/052076.html>), where he reports:

 I'm trying to run mailman 2.1.8 on a system with only 32 MB RAM (and
 ~100 MB swap).
 However, it fails to start - the system swaps very heavily, and then
 mailman gets killed by the kernel.
 Without mailman started, the system uses about 12 MB RAM.

Further testing by Tomasz (see <http://mail.python.org/pipermail/mailman-users/2006-July/052086.html>) indicates that the problem was lack of swap space:

 You can update it with "really minimal system": I added some more swap,
 and mailman started :)
 So right now, it is:
 - debian running on a 200 MHz mipsel CPU / 32 MB router (ASUS WL-500G deluxe)
 - usb stick with 256 MB swap
 - system on another USB-stick
 - it runs apache2, postfix, sshd, openvpn, ez-ipupdate, crond, pppd and syslog
 - it acts as a internet gateway to a couple of PCs
 I wouldn't say that mailman is speedy there - an average operation in
 the mailman web interface can take even 10-15-20 seconds.

So, it looks like Mailman needs a minimum of about 256MB of swap, and may be minimally useable for a single person with the tiniest of lists on a machine with just 32MB of RAM.

Last changed on Sat Dec 16 04:31:30 2006 by Brad Knowles
Converted from the Mailman FAQ Wizard

This is one of many Frequently Asked Questions.