Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!beach.cis.ufl.edu!esj From: esj@beach.cis.ufl.edu (Eric S. Johnson) Newsgroups: comp.mail.sendmail Subject: Re: Setting up and running an internet style mailing list Message-ID: <20074@uflorida.cis.ufl.EDU> Date: 14 Apr 89 00:50:13 GMT References: <532@drd.UUCP> Sender: news@uflorida.cis.ufl.EDU Reply-To: esj@beach.cis.ufl.edu (Eric S. Johnson) Distribution: usa Organization: UF CIS Department Lines: 57 I used to moderate a fairly large mailing list. There came a point in time when this mailing list grew to large. 20-30 messages a day on a list of 150-200 people can make even the fastest machine crawl. Since the machine the list was running on was not bought to run mailing lists, I caught a bit of flak from above when the load average shot up above 15 and there were 10 sendmail processes chewing on the mailing list. I had to do something. I proposed to the people on the list that it was time to convert it to a newsgroup. The responce was completly negative. So I dug out the sendmail docs and found another solution. This might be of help to other mailing list admin's with large lists. Basicly, sendmail can be told to use queues other then the default /usr/spool/mqueue. To do this you use the -oQ option on the command line. So I set up a new queue just for the mailing list. I then made a small variation on Karl K.'s generic mailing list system and Voila: there is never more then one sendmail process crunching on the mailing list. Here is what you do. The aliases file looks just like Karl's generic one: listname: "| /usr/spool/mqueue/listname/send-list" listname-request: listmaintainer owner-listname: listmaintainer listname-out: :include:/usr/spool/mqueue/listname/aliasesforlist Then the /usr/spoool/mqueue/listname/send-list script looks like this: #!/bin/sh sed -e '/^From /d' | \ (echo Errors-To: listname-request@beach.cis.ufl.edu; \ echo Sender: listname-request@beach.cis.ufl.edu; \ echo Precedence: bulk; cat -) | \ /usr/lib/sendmail -f listname-request@beach.cis.ufl.edu \ -F 'The List Name' \ -odq -oQ/usr/spool/mqueue/listname \ listname-out The -oQ option tells sendmail to use the non-standard queue, and the -odq option tells sendmail to simply queue the message for later processing. Then, you need to have a sendmail daemon processes go thru and processes the queue every once in a while. I added the following line to the rc.local file on the machine: /usr/lib/sendmail -oQ/usr/spool/mqueue/listname -q12h And every 12 hours the daemon runs the queue. This lets you keep the machine load of the list down to a reasonable level, no matter what the traffic is. And it keeps the list traffic seperate from your normal mail, which makes it easier to monitor. Enjoy, Ej