Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
2.  Storage Management Concepts Configuration Planning Guidelines Choosing Storage Mechanisms  Previous   Contents   Next 
   
 

Performance Issues

General Performance Guidelines

When you design your storage configuration, consider the following performance guidelines:

  • Striping generally has the best performance, but it offers no data redundancy. For write-intensive applications, RAID 1 volumes generally have better performance than RAID 5 volumes.

  • RAID 1 and RAID 5 volumes both increase data availability, but they both generally have lower performance, especially for write operations. Mirroring does improve random read performance.

  • RAID 5 volumes have a lower hardware cost than RAID 1 volumes, while RAID 0 volumes have no additional hardware cost.

  • Identify the most frequently accessed data, and increase access bandwidth to that data with mirroring or striping.

  • Both stripes and RAID 5 volumes distribute data across multiple disk drives and help balance the I/O load.

  • Use available performance monitoring capabilities and generic tools such as the iostat command to identify the most frequently accessed data. Once identified, the access bandwidth to this data can be increased using striping, RAID 1 volumes or RAID 5 volumes.

  • The performance of soft partitions can degrade when the soft partition size is changed multiple times.

  • RAID 5 volume performance is lower than stripe performance for write operations, because the RAID 5 volume requires multiple I/O operations to calculate and store the parity.

  • For raw random I/O reads, the stripe and the RAID 5 volume are comparable. Both the stripe and RAID 5 volume split the data across multiple disks, and the RAID 5 volume parity calculations aren't a factor in reads except after a slice failure.

  • For raw random I/O writes, the stripe is superior to RAID 5 volumes.

Optimizing for Random I/O and Sequential I/O

This section explains Solaris Volume Manager strategies for optimizing your particular configuration.

In general, if you do not know if sequential I/O or random I/O predominates on file systems you will be implementing on Solaris Volume Manager volumes, do not implement these performance tuning tips. These tips can degrade performance if they are improperly implemented.

The following optimization suggestions assume that you are optimizing a RAID 0 volume. In general, you would want to optimize a RAID 0 volume, then mirror that volume to provide both optimal performance and data redundancy.

Random I/O

If you have a random I/O environment, such as an environment used for databases and general-purpose file servers, you want all disk spindles to be approximately equal amounts of time servicing I/O requests.

For example, assume that you have 40 Gbytes of storage for a database application. If you stripe across four 10 Gbyte disk spindles, and if the I/O load is truly random and evenly dispersed across the entire range of the table space, then each of the four spindles will tend to be equally busy, which will generally improve performance.

The target for maximum random I/O performance on a disk is 35 percent or lower usage, as reported by the iostat command. Disk use in excess of 65 percent on a typical basis is a problem. Disk use in excess of 90 percent is a significant problem. The solution to having disk use values that are too high is to create a new RAID 0 volume with more disks (spindles).


Note - Simply attaching additional disks to an existing volume will not improve performance. You must create a new volume with the ideal parameters to optimize performance.


The interlace size of the stripe doesn't matter because you just want to spread the data across all the disks. Any interlace value greater than the typical I/O request will do.

Sequential Access I/O

You can optimize the performance of your configuration to take advantage of a sequential I/O environment, such as DBMS servers that are dominated by full table scans and NFS servers in very data-intensive environments, by setting the interlace value low relative to the size of the typical I/O request.

For example, assume a typical I/O request size of 256 Kbyte and striping across 4 spindles. A good choice for stripe unit size in this example would be: 256 Kbyte / 4 = 64 Kbyte, or smaller.

This strategy ensures that the typical I/O request is spread across multiple disk spindles, thus increasing the sequential bandwidth.


Note - Seek time and rotation time are practically zero in the sequential case. When you optimize sequential I/O, the internal transfer rate of a disk is most important.


In sequential applications, the typical I/O size is usually large (greater than 128 Kbytes, often greater than 1 Mbytes). Assume an application with a typical I/O request size of 256 Kbytes and assume striping across 4 disk spindles. 256 Kbytes / 4 = 64 Kbytes. So, a good choice for the interlace size would be 32 to 64 Kbyte.

 
 
 
  Previous   Contents   Next