I'm setting up a prototype for mail system that will use a similar set up
and we will face similar problems with mass mailings. My understanding --
and I would appreciate any correction/confirmation from the list -- is that
this problem is addressed by LMTP and the lmtp deamon *assuming* you have
your MTA using LMTP directly.
When the MTA ( postfix here and in your description ) delivers the mail
addressed to all via LMTP, the email is sent once with all of the addresses
in the envelope. lmtpd takes the email and creates a disk file once for
each partition where it is being received and hard links it to all other
receiving mailboxes in the partition. In this senario, the overhead of
sending the email to all verses sending to just one user should be small.
However, postfix ( and I beleive qmail ) don't support LMTP directly "out of
the box". In the case of postfix, a separate delivery process is available
( see postfix website ) but it must be obtained separately. If you are just
using the cyrus deliver program to communicate with lmtpd, postfix must
spawn the program once for every delivery address ( a lot of process
creation over head ) and lmtpd does not see this as a single mail with
multiple delivery addresses but rather as many distinct emails. Each email
is delivered separately, duplicating the message on the disk once for every
receipiant.
The LMTP update for postfix is found on the download page at www.postfix.org
under "Unofficial patches". I don't know how well it works. Alternately,
if you want to go with production versions of software, sendmail has native
support for LMTP in the recent releases. You could move the postfix MTA to
a separate machine -- it probably could be a lot smaller than your current
mail host -- and have it deliver to sendmail on the mailhost via SMTP where
it would then be delivered via native LMTP to cyrus. Sendmail LMTP is
activated with a MAILER(lmtp) in your sendmail.mc.
Hope this helps you, and I hope your not already using LMTP directly or I'm
going to be in a world of hurt in a week or two :-) Let me know how it
goes, I'm anxious to find out.
Cheers
Chris
----- Original Message -----
From: "Andy Hubbell, Jr." <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 09, 2001 11:33 PM
Subject: Performance Question cyrus-imapd 2.0.11
> Greetings,
>
> Ok, time for another question... We are running a mail system (ISP) with
just a bit over 4000 mailboxes at present... Our exact configuration is as
follows: RedHat Linux 7.0 + patches, postfix snapshot 20010204 (MTA), and
cyrus-imapd 2.0.11 system is a dual PIII 800 with 512mb ram, hardware
mirrored 18 gig ultra scsi disks. Additional configuration information,
postfix is configured to virus scan (amavis & Kaspersky
AVPDaemon/AVPDaemonClient) then passes it back for lmtp delivery via unix
socket.
>
> This is working quite well so far, but I have noticed performance
slowdowns when a large amount of mail gets dumped on us at once... The main
reason I'm asking is because we have an email list that goes to every
customer who has a mailbox on our system, and when we send even a small
email to the list it can take up to 3 hours for the system to finish
processing and delivering to all of the mailboxes...
>
> Is there any way to drastically improve the performance of this system?
Can cyrus-imapd perform some kind of directory hashing that I can turn on
like postfix and other MTA's support? I understand the issues with linux
and large directories, so this is why I'm asking about the hashing...
>
> I'm willing to listen to any tips, even up to changing the hardware set-up
somewhat.... I somewhat under-estimated the size and load of this mail
system when I first designed it and need to come up with a solution we can
live with going forward as we grow. I've considered the possibility of
switching to qmail vs. postfix, but it seems that the responsibility for
delivery lies with cyrus & lmtpd...
>
> TIA!
>
> Andy H.
>
> ---
> PGP public key fingerprint
> FC3A FD71 8A43 E510 8797 6FD8 918C 1D54 17D9 9EC1
>
>