Concepts and Planning << >>

I/O Subsystem

The I/O subsystem, including the type and number of disk controllers, the type of drives installed, and the choices required for disk fault tolerance and redundant array of inexpensive disks (RAID) configurations, affects overall system performance.

If a server has enough RAM to prevent thrashing, most I/O operations are used to provide server processes (such as the directory and the information store) with the data they need to complete tasks. If a server is low on memory, most I/O operations will be used up by paging.

Microsoft Exchange Server issues I/Os to the disk subsystem on the server to read data from disk into memory or to write data to permanent storage. For example, when a user opens his or her Inbox, the set of properties in the default folder view must be accessed for each of the first 20 or so messages in the user's inbox folder and returned to the user. If this information is not already cached in memory on the server from a recent previous access, it must be read from the server's information store database on disk before the action is completed.

Microsoft Exchange Server reads and writes to disk synchronously or asynchronously. Although all read I/Os and asynchronous write I/Os can be considered random, many synchronous writes to disk are sequential. For example, writing to the information store or directory databases is random, whereas writing changes to transaction log files on disk are sequential actions. Sequential disk access is much faster than random access because the I/O to the drive is completely sequential; the disk head typically does not need to physically move from one disk location to another to access logically contiguous pieces of data.

To take advantage of the sequential nature of transaction log files, put the database transaction log files on a dedicated physical disk drive. Hosting the transaction log files on their own disk, with no other sources of disk I/O on the drive, ensures good performance for writing to disk.