Tuning I/O resources

Tuning virtual disk performance

When configuring a virtual disk array, you need to balance the I/O performance (maximum throughput) you expect from it against its inherent resilience to hardware failure. The various configurations can be arranged from best to worst under these criteria as shown in the following table:

Comparison of simple and virtual disk configurations

Rating I/O performance Resilience
Best RAID 10 mirror
stripe RAID 10
RAID 5, 53 RAID 4, 5 (hot spare)
RAID 4 RAID 4, 5 (no hot spare)
concatenated simple
Worst simple concatenated, stripe
The performance rankings are based on equal virtual disk storage capacity for each configuration. You should also note that increasing the amount of redundancy in a virtual disk array increases its resilience but it also increases the number of disks and therefore the cost. If you use several host adapters to provide resilience against one of these failing, this will also add to the cost of setting up a virtual disk array. The best all round performer for I/O throughput and resilience is a RAID 10 array.

Mirrored disks (RAID 1) offer the best resilience to hardware failure (especially if the disks are on separate buses or controllers). They usually have a lower maximum I/O throughput than striped (RAID 0) or RAID 4 and 5 arrays. However, you should note that a RAID 1 array can outperform RAID 4 and 5 if the predominant pattern of operation is to write data to disk.

To get the best performance from a virtual disk array, your system's CPU power and memory (RAM) capacity should be capable of handling the extra overhead incurred by the virtual disk driver (vdisk) in processing disk requests. We recommend that your system has at least a 486(TM) processor running at 50MHz. The amount of memory that the vdisk driver uses depends on:

On a lightly loaded system with two or three virtual disks, vdisk requires up to 500KB of memory for its internal data structures. On a busy file server with several virtual disks which have been tuned to optimize I/O throughput, vdisk requires at least 1MB of memory. Since the kernel allocates physical memory to vdisk dynamically, this memory does not show up in the size of the kernel when it initializes. If your system is short of real memory, it may start to swap or page out memory belonging to processes when vdisk is heavily loaded.

You should also note that using host adapters or disk controllers that are not capable of performing DMA above the first 16MB of memory (that is, not 32-bit controllers) will increase CPU overhead for all disk I/O (not just to virtual disks) for systems with more than 16MB of RAM.

If you mix hard disks which have different access times, this can cause an I/O bottleneck on the slow disks. To avoid this, ensure that all the disks in a virtual disk array have similar performance characteristics. The way that you assign disk pieces between disks can also cause a bottleneck. Physical disks that contain more disk pieces than others are likely to be more heavily loaded. This may occur if you allow the layout of your virtual disk arrays to overlap partially.

See the following for more information on tuning virtual disk performance:

For more information about virtual disk configuration and administration, see ``Administering virtual disks''.

Next topic: Performance considerations for RAID 4 and 5
Previous topic: Curing a disk I/O bottleneck caused by unbalanced disk I/O activity

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003