While most people think of disk I/O in terms of sequential performance figures, only a few servers--DBMS servers dominated by full table scans and NFS servers in very data-intensive environments--will normally experience sequential I/O.
Why do I need to know about sequential I/O?
You can optimize the performance of your configuration to take advantage of a sequential I/O environment.
The goal in this case is to get greater sequential performance than you can get from a single disk. To achieve this, the stripe width should be "small" relative to the typical I/O request size. This will ensure that the typical I/O request is spread across multiple disk spindles, thus increasing the sequential bandwidth.
What is the general strategy for configuring for a sequential I/O environment?
You want to get greater sequential performance from an array than you can get from a single disk by setting the interlace value small relative to the size of the typical I/O request.
max-io-size / #-disks-in-stripe
Example:
Assume a typical I/O request size of 256 KB and striping across 4 spindles. A good choice for stripe unit size in this example would be:
256 KB / 4 = 64 KB, or smaller
Seek and rotation time are practically non-existent in the sequential case. When optimizing sequential I/O, the internal transfer rate of a disk is most important.
The most useful recommendation is: max-io-size / #-disks. Note that for UFS file systems, the maxcontig parameter controls the file system cluster size, which defaults to 56 KB. It may be useful to configure this to larger sizes for some sequential applications. For example, using a maxcontig value of 12 results in 96 KB file system clusters (12 * 8 KB blocks = 96 KB clusters). Using a 4-wide stripe with a 24 KB interlace size results in a 96 KB stripe width (4 * 24 KB = 96 KB) which is a good performance match.
Example: In sequential applications, typical I/O size is usually large (greater than 128 KB, often greater than 1 MB). Assume an application with a typical I/O request size of 256 KB and assume striping across 4 disk spindles. Do the arithmetic: 256 KB / 4 = 64 KB. So, a good choice for the interlace size would be 32 to 64 KB.
Number of stripes: Another way of looking at striping is to first determine the performance requirements. For example, you may need 10.4 MB/sec performance for a selected application, and each disk may deliver approximately 4 MB/sec. Based on this, then determine how many disk spindles you need to stripe across:
10.4 MB/sec / 4 MB/sec = 2.6
Therefore, 3 disks would be needed.