OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: how to increase throughput of postfix to local user?

From: devel anaconda (anaconda-develyandex.ru)
Date: Fri Nov 06 2009 - 01:16:35 CST


06.11.09, 01:58, "Victor Duchovni" <Victor.Duchovnimorganstanley.com>:

> On Fri, Nov 06, 2009 at 12:02:45AM -0600, Stan Hoeppner wrote:
> > If it's a 1U server, I can tell you already that you are screwed, and
> > that you need a bigger chassis with more SCSI/SAS disk bays, at least 8
> > disks given your load of 250-300 msgs/sec.
> Does this application really need Postfix and a queue? Why not just
> turn the script into an SMTP server that pre-forks a fixed number of
> copies and loops receiving/processing email? For 200-300 msgs/sec on
> an I/O constrained server with a single "mailbox", one really does not
> need Postfix, and can't afford the I/O cost of a local queue.

Actually, I didn't tell the complete story.
The point is:

MTA (postfix) recieves the message. Then I need to put this message to 3 scripts (I must notify three different services about incoming mail). Now it looks like this:

mail comes to userlocalhost on my Postfix, on aliases file I have:

usrer: user1,user2,user3

user1: |/usr/local/bin/script1
user2: |/usr/local/bin/script2
user3: |/usr/local/bin/script3

probably it'll be more scripts soon. When script1 fails with exit 75, but script2 and script3 have success, I must return mail for script1 to queue and try again later, and remove from queue messages for script2 and script3. That's why I use postfix and that's why I can't use pre-queued filter. I thought about different scheme, but postfix is the "easy way", so I'm trying speedup things a bit :)