On 2017-04-11 14:04:08 (-0400), Viktor Dukhovni <postfix-us...@dukhovni.org>
wrote:
On Apr 11, 2017, at 1:55 PM, Philip Paeps <phi...@trouble.is> wrote:
It is worth repeating that the spinning rust actually matters in this
case: Postfix fsync()s when accepting a message into the queue. The
time to it takes to enqueue a message is at least the time it takes to
write it to disk, not simply the time it takes to hit the buffer
cache.
For high-volume senders, the main problem is usually getting the mail *out*
faster with less friction from the receiving systems. Accepting mail faster
is not necessarily a good idea, if that just means a bigger backlog.
I'm aware of that. :) I merely wanted to remind the OP (and anyone
stumbling across this thread in the archives) that the time it takes to
enqueue mail should not be underestimated. Many common workloads don't
have to care too much about disk latency because they're protected by
the buffer cache. This is not the case when handling large volumes of
mail.
Ideally you want to be able to get mail out as fast as it's coming in or
at least not very much slower but you don't have complete control over
that (sites you need to deliver to can go down or refuse to take mail
from you for a while, etc).
If you know you need to relay half a million messages in a short period
of time weighing about 100Gbytes in total, you need to be prepared to
enqueue an appreciable fraction of that volume.
The OPs efforts should go towards understanding what it takes to send
email at the intended volume. Receiving it fast enough is a secondary
issue.
It sounds like the OP is largely unprepared for the task at hand. This
requires real experience and dedicated effort. Just asking for a few
ideas on this list is unlikely to be sufficient.
I agree.
A sane approach is to start small, grow gradually, and solve small
problems as they come up, before they become big problems. Going from
nothing to sending a very large volume of mail is not easy.
At the very least, the OP should spend what little time he has before he
needs to handle this load becoming as familiar as possible with the
TUNING_README and probably also QSHAPE_README.
That will hopefully prepare him enough to balance the rate of mail
coming in against the rate he can get it out. It still might not be
very pretty though.
Philip
--
Philip Paeps
Senior Reality Engineer
Ministry of Information