Wietse Venema: > 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.
You can reduce the latencies by using a large non-volatile buffer (as is common with RAID systems). With the large non-volatile buffer, writes complete quickly. The hardware can sort the update order to minimize head movements. Wietse