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