I am about to setup a web application that consists of 2 app servers (running php/apache) and 2 db servers (ubuntu slices on slicehost).
The application will be sending approximately 5000 emails a day initially which will grow to 20k-100k within about 3 months as new features get rolled out.
I have never really administered a mail server before so I am not sure what kind of load will start impacting performance.
The mail server (postfix) will have spikes where it will go from 5 emails a minute, to 20k a minute. (although this might be staggered, lets assume its not staggered for now)
Given the basic outline above, do you think it would be beneficial to run another server (slice) which is purely a mail server (outbound, running postfix) thereby shifting all email load over to that server instead of the app servers. Or, is postfix efficient enough that there is no need and a separate server is possibly overkill?
If people could refrain from "Test it and see" that would be good, I am asking for people with experience to comment.
Additional note: Postfix will only be sending email, receiving email will be handled by google apps.
Yeah, 20k a minute is going to be straining the system a bit. The bottleneck will be disk IO, with the system trying to write all the queue files and read them back and generally shuffle them all around, so a dedicated VM (or machine, with smokingly fast disks) is the way to go. Given that your mail probably isn't all that important, putting the spool on a RAM disk will give you significant performance gains at the cost of losing your queue when the machine reboots.