Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: Re: Net::SMTP slow on linux

by shadowpuppet (Acolyte)
on Apr 22, 2002 at 18:35 UTC ( #161120=note: print w/replies, xml ) Need Help??

in reply to Re: Net::SMTP slow on linux
in thread Net::SMTP slow on linux

Thanks. It's a persistant connection to localhost (actually I restart every 1000 emails). The linux server is a dual p3 1.1Ghz with 4G ram. We have two solaris, one quad 450 4G, and a dual 450 with 2G ram. The Net::SMTP performance is similar on the both. I think I may have figured out the difference in performance, the solaris server(s) are on an EMC array, while the linux is off localdisk. The performance is pretty good on linux if I send a single mail to tons of recipients, but not one mail per recipient. I need to be able to send in both ways. I guess the localdisk may explain that.

Replies are listed 'Best First'.
Re: Re: Re: Net::SMTP slow on linux
by lhoward (Vicar) on Apr 22, 2002 at 18:59 UTC
    You are correct. Postfix (and MTAs in general) are extremely disk IO intensive. If you're looking into improving performance of the system, I recomend you look into a faster disk subsystem. A lot of work can be done tweaking Postfix for optimal performance too (running a second instance for defered emails, tuning the # of processes and SMTP timeouts, moving spools onto their own disks (or at least separate partitions), if you're willing to risk loosing data in the event of a power outage you can also try using a ramdisk for spool, etc...)

    You may be able to squeeze a little more performance out of your existing system by generating (and delivery to postfix) mails in parallel. I was running on a e450 for a while with 4 CPUs and postfix and I found that my optimal generation rate was produced by having 8 simultaneoue mail generation/injection processes. Your performance may vary, but its worth looking into. If you try this, be careful not to flood postfix's mailqueues. If they grow too large performance will suffer.

      Yes, the generating in parallel was something we discovered as well. Although the max injection rate (SMTP submits) we could get out of a process was 250,000 per hour, we discovered that doing 2 at a time didn't slow down this rate much. We were thinking of running 4 at a time on each server. But I'll trust and suggest your number 8 - that makes sense. If I can linux to submit at 250,000 by putting it on EMC array (which is like ram disk), we'll be in business with multiple processes. On a side note, the 250,000 was up from 125,000 when I made the following code change on Net::Cmd ->
      line 476__ $main::ignore_response ? 1 : ($cmd->response == CMD_OK);

      I noticed alot of delay in waiting for the response when a mail was finished submitting to postfix. I set ignore_response as a global in the sending program.

      Thanks for your help and confirmation of the multiple-processes strategy.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://161120]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2021-01-26 09:11 GMT
Find Nodes?
    Voting Booth?