last months patches

Mariano Absatz mailscanner at LISTS.COM.AR
Sun Jul 4 14:06:00 IST 2004


Hi Julian,

I wasn't able to pack this before (or to add a couple of patches I wanted
to, cause I still couldn't finish/try them).

In http://tinyurl.com/2qalx I packed you  most of what I'd done by then.

The only patch I've finished and tested after that is the one I sent in
http://tinyurl.com/3cm64 (I only tested with ZMailer, but it is trivial
enough to work alright with any MTA).

The affected files by this last one are:
lib/MailScanner/Exim.pm
lib/MailScanner/Postfix.pm
lib/MailScanner/Qmail.pm
lib/MailScanner/Sendmail.pm
(this is the only patch that touched anything in the above 4 files)
lib/MailScanner/ZMailer.pm

For your convinience, I also applied this latest patch to the complete
files in http://baby.com.ar/MailScanner/MS-new where you get all modified
files complete.

Everything is against the latest 4.31.6 release.

Maybe I'll have time to add a couple more next week (please let me know
what you accept/reject from these patches so I work on current files and
you don't have to review 3 times the same thing).

I'm working on 2 new things:
*) What I already mentioned in http://tinyurl.com/2f45l
*) A new signal handler (probably for SIGCONT or SIGUSR1 or something like
that) that allows me to ask the parent to ask its children to finish, but
only after having processed the current batch. The parent would then
restart its children.

I have a bunch of servers that, at times, are overwhelmed by the sheer
quantity of incoming messages. The average overall performance of
MailScanner is about 2 messages per second per CPU (on fast Xeon 3.2
hyperthreading CPUs).

There are times when incoming message rate is above 2 msgs/sec for a
somehow extended period (say 20 minutes). This is OK, messages eventually
get drained OK.

But, if by chance I have to make a configuration change in the middle of
that strom (maybe adding a new SA rule, or changin something in
MailScanner.conf), when I reload MailScanner the average queue size grows
quite a bit.

This is a function of different things. I have 8 children and a max batch
size of 100 which is quite nice when your queues are long. But that means
that when  you reload (kill -HUP) every child discards the current batch,
in whatever state it is.

Without serious probabilistics envolved, this must be discarding, on
average (Children x BatchSize)/2 messages almost already processed, so a
reload means my already large and growing queue, is fed an additional 400
messages.

I'll let you know when I've developed the patch if I'm able to test this
situation how much I gain (in speed vs. immediate new config).

Regards.
--
Mariano Absatz - El Baby

Daddy, why doesn't this magnet pick up this floppy disk?

-------------------------- MailScanner list ----------------------
To leave, send    leave mailscanner    to jiscmail at jiscmail.ac.uk
Before posting, please see the Most Asked Questions at
http://www.mailscanner.biz/maq/     and the archives at
http://www.jiscmail.ac.uk/lists/mailscanner.html



More information about the MailScanner mailing list