Yu (Irvin) Fan:
> Hi,
> 
> We're building a box to run two postfix instances to receive and send high
> volume of emails. According to the documentation it's better to run the two
> instances on separate disks for performance reason. I'm trying to understand
> how exactly does the disk I/O affect the postfix performance? By speed
> (bytes per second) or activities (# of read/write per second)?

I have shocking information for you: it is none of the above.

Postfix must write the message to stable storage, so that it
will not be lost after a system crash.

For example, writing mail to a queue file requires multiple file
system updates:

- allocate queue file inode (in inode bitmap etc.)
- allocate queue file blocks (in block bitmap etc.)
- update queue file blocks
- update queue file inode
- update directory file (for queue file name etc.)
- update directory file inode

Each of these are in a different place in the file system.  Only
once all this information is updated, can Postfix claim that mail
is in stable storage.

Thus the read/write speed is largely irrelevant for small email
messages. Performance is dominated by seek latency and rotational
latency.

        Wietse

> Let's say I have two hard disks. If I make a RAID0 array out of the two
> disks the overall speed is twice as the speed of a single drive (I know it's
> not exact twice the speed. just simplify it for discussion). If the postfix
> performance depends on the disk speed then running two instances on two
> separate disks or running two instances on one RAID0 array should not make
> big difference, right? But if it depends on disk activities then running on
> two separate disks is definitely better. I know no matter which case using
> two disks is the choice. But if I have other reason to use RAID0 I just want
> to know how much performance I lost in postfix?
> 
> Thanks
> 
> -Irvin

Reply via email to