I'm copying this response back to the list, as this discussion needs to be in the various list archives for other who may intend to follow in your footsteps.
On 8/27/2012 8:09 AM, Mike Mitchell wrote: > I do have to say, I was originally hoping that I could optimize things > merely with some main.cf changes to queueing settings, etc., as I don't > see our hardware having a difficult time dealing with the mail load at > the moment. No one has suggested anything about the process or > concurrency settings at all, and I'm sure there's bound to be another > bottleneck in the actual delivery mechanism. Postfix is an SMTP mail transfer agent designed primarily for internet facing duty. As such it has been designed to prevent a single remote host from overwhelming the system. To get around this safety feature and submit a large amount of mail in a short time frame from a single host, you must make submissions in parallel. The instructions I gave you allow you basically trick Postfix into believing multiple remote hosts are submitting, by using multiple IP addresses. And yes, once you have this part worked out you'll likely find another bottleneck that will need to be addressed. Welcome to mail server tuning 101. > It seems like what we need here, really, is a mailer that can do as much > as possible in memory without writing to the disk. I don't believe such an MTA exists. I'm pretty sure running a memory only queue violates the SMTP protocol. To achieve such a thing you'd probably have to write you own MTA from scratch, or modify an existing one. If you know Perl you may be able to modify qpsmtpd to fit your needs. It's an MTA written entirely in Perl: http://smtpd.develooper.com/ > The messages we're > sending are tiny--50,000 messages would take up a puny amount of RAM, > relative to the 48GB RAM systems we're using. If you're aware of a way > to do this with postfix (or any other mailer, for that matter), I'd love > to get your input. Thanks.... The first thing that comes to mind is using a ramdisk for the queue directories. But I'm doubting Postfix will work with queue directories on a ramdisk. Wietse can answer this. The problem you have here is that you know what you wish to do and SMTP MTAs aren't going to easily cooperate. You're stuck using SMTP because it's universal and reaches all of your parties. But SMTP is a protocol with many inbuilt guarantees. These guarantees are going to get in your way, specifically store and forward, which is what you're wanting to avoid by doing the queue in memory. As others have said, SMTP isn't the proper protocol for the type of messaging you're wanting to accomplish. But since you're stuck with it, you must optimize and tweak it to satisfy your needs. It may not be easy, but you have no other choice if you must use SMTP. -- Stan