Kov?cs Albert:
> Hello Wietse,
>thanks for the clarification, I'd stick to a stable and supported
>method.

Thanks. And I with I had a better answer.

Speaking which, Postfix supports QMQP. This protocol is simpler
than SMTP, designed by Dan Bernstein, and is based on netstrings.
Netstrings are simple to implement and are already available as
libraries for pupular programming languages.

    http://cr.yp.to/proto/qmqp.html

But this does nothing to remove the file system bottleneck.

>Can you give me a rough estimation on "moderate level" for such an
>environment where the only source of messages is the local injection?
>I mean messages per second or similar.

That depends totally on the file system, and the size of messages.
You can test this with the Postfix smtp-source utility. That is
part of the source code distribution (untar and "make") and normally
not installed.

As required by SMTP (and other) rules, Postfix must fsync() each
message before claiming that it has accepted the message.

On rust (i.e. rotating disks) this takes many milliseconds because
it involves updates of data blocks, inode blocks, bitmap blocks,
most or all of which are in different locations on the drive. Even
if you have a large write cache it will eventually fill up and heads
will have to move and wait for sectors to fly by.

On silicon (ramdisk, SSD) this takes less time because there are
no head movement or rotational latency.

>And is there a way to force the smtp utility to send multiple
>messages through an already established connection?  Ie. instead
>of QUIT, continue with another MAIL FROM command (the recipient
>address is fixed and the same for all messages). Or the postfix
>smtp program is smart enough and does so whenever it's possible
>without instructing it?

As required by the SMTP protocol Postfix accepts multiple messages
over one SMTP connection. But that does nothing to remove the file
system bottleneck.

        Wietse

Reply via email to