On 7 Oct 2004, at 03:32, AE Somerville wrote:

I am currently experiencing a very slow delivery of email from mailman to
our smart relay server. The job of mailman in our system is to accept the
list message expand it and inject it directly back to our mail router for it
to decide where the messages are to go. At no time will the mailman server
connect and deliver a message to the external SMTP host.




As nobody else appears to want to comment, I will provide my 2 cents.

The time being logged is the time that the outbound SMTP server is taking to accept the message; not something Mailman controls directly but something that possibly should be investigated at the outbound SMTP server end.

However, on the systems I manage I do not have Mailman talk directly to outbound relays on other machines although I did at one time long past.

My practice is to have Mailman hand outbound messages, using SMTP, to the MTA on the Mailman server machine; that MTA has to be in place anyway to handle incoming traffic.

My reason is that any competent MTA is generally far better than Mailman at dealing with the vagaries of message queuing and retrying and that sort of inter-MTA stuff.

This can be particularly beneficial with older versions of Mailman as Mailman can be overly aggressive towards the outbound MTA when dealing with retries; when Mailman wants to get rid of outbound traffic it sets about retrying it with a will if it doesn't get accepted the first time. If Mailman is talking directly to an outbound relay with a problem it can and will bury that server with retry attempts.

Even with the latest Mailman version (2.1.5) the backoff strategy when successive retries are required is IMHO less effective than those adopted by competent MTAs such as sendmail.

In general Mailman's outgoing runner then gets faster/more consistent service from its local MTA and you are much less likely to get a high-CPU usage outgoing runner when the outbound message path is held up for any reason.

Just an opinion.


Oct 06 18:24:02 2004 (21646) <[EMAIL PROTECTED]>
smtp for 1 recips, completed in 9.089 seconds


Oct 06 18:24:30 2004 (21646) <[EMAIL PROTECTED]> smtp for 1
recips, completed in 27.876 seconds


Oct 06 18:24:40 2004 (21646) <[EMAIL PROTECTED]> smtp for 3
recips, completed in 10.496 seconds


Oct 06 18:24:56 2004 (21646) <[EMAIL PROTECTED]> smtp for 1
recips, completed in 14.809 seconds


Oct 06 18:25:39 2004 (21646) <[EMAIL PROTECTED]> smtp
for 96 recips, completed in 41.099 seconds


Oct 06 18:25:44 2004 (21648)
<[EMAIL PROTECTED]> smtp for 849 recips,
completed in 584.837 seconds



The emails with one recipient are the killers as there are a lot of them and
it they all take in excess of 10sec each then the rest of the list
processing falls behind as a result. It seems like the outbound qrunner
process is taking things at a very slow pace. The installation is on a local
hard drive but the logs are on an NFS mount. All the queue runners are
loading OK and I'm not seeing much by way of errors, its just slow to get
the mail out (2Hrs+) and the machine CPU/RAM is not being used much at all,
generally it's 75% idle. Messages do flow through, its just we get more than
we deliver out so the out directory is overflowing. (when they are flowing
the delivery times to fluctuate wildly; 1 message recipient can take
6.661sec while the 3 recipient message above it in the log only took
0.370sec)




We have a lot of messages that reject but we found that the qrunner was
retrying the 100s of them every hour so we lengthened that to every 24Hrs.
(We know the messages are likely to be deleted if they are not accepted in
the first instance by the smtp smart relay, but we need to keep them to
retry in just case of an aliases error on the relay) Other qrunner configs
from the URL included




Everything is vanilla except for the site configs below and one code change:

In "mailman-2.1.5/Mailman/Queue/Switchboard.py", change line 167 from

        if not lower or (lower <= long(digest, 16) < upper):

to

        if (lower == upper) or (lower <= long(digest, 16) < upper):





Settings from mm_cfg.pycat

#http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq06.006.htp

QRUNNER_LOCK_LIFETIME = hours(20)

QRUNNER_PROCESS_LIFETIME = hours(2)

QRUNNER_MAX_MESSAGES = 50000





SMTPHOST = 'smtp.qut.edu.au'

SMTPPORT = 25



MAILMAN_OWNER     = '[EMAIL PROTECTED]' % DEFAULT_HOST_NAME



DEFAULT_MAX_MESSAGE_SIZE = 5000           # KB

DEFAULT_SEND_REMINDERS = 0

DEFAULT_SEND_WELCOME_MSG = 0

DEFAULT_MINIMUM_REMOVAL_DATE = 30

DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION = 10

SMTP_MAX_RCPTS = 1000

SMTP_MAX_SESSIONS_PER_CONNECTION = 0

MAX_DELIVERY_THREADS = 0

DEFAULT_ARCHIVE = Off

DELIVERY_RETRY_PERIOD = days(5)

DELIVERY_RETRY_WAIT = hours(24)



------------------------------------------------------
Mailman-Users mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/



------------------------------------------------------ Mailman-Users mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/

Reply via email to