| |
Mike Ault Secrets for
Tuning Disk I/O
September 17, 2004
In this exceptional article, Oracle
guru Mike Ault speaks out on improving Oracle disk I/O and SCSI bus
issues:
Ault notes the semi-secret
sd_max_throttle parameter and how it improves Oracle disk I/O
throughput:
For some hardware RAIDs, it has
been found that decreasing sd_max_throttle improved performance due
to better load balancing among LUNs. It might be worth a shot if
your hardware based RAID system seems sluggish.
Ault note the following important SCSI
/etc/system parameters for Oracle disk tuning:
The following variables in the
/etc/systems file should be set to maximize system performance. When
any of these variables are changed, the system must be rebooted for
changes to take effect.
sd_max_throttle -- The sd_max_throttle variable sets the
maximum number of commands that the SCSI sd driver will attempt to
queue to a single HBA driver. The default value is 256. This
variable must be set to a value less than or equal to the maximum
queue depth of each LUN connected to each instance of the sd driver.
If this is not done, then commands may be rejected because of a full
queue condition and the sd driver instance that receives the queue
full message will throttle down sd_max_throttle to 1. This obviously
will result in degraded performance. The variable is set in the
/etc/system file as follows:
set sd:sd_max_throttle=20
sd_io_time -- The sd_io_time variable is command time out
value. Setting this time out value to 120 seconds will prevent the
host from issuing warning messages while non-disruptive operations
are performed on the disk array. For example, in a EMC Symmettrix
power path environment this variable can be set to 0x3C (60
seconds). As with the sd_max_throttle value, this is set in the
/etc/system file. Using the EMC value in an example:
set sd:sd_io_time = 0x3C
scsi_options -- The value scsi_options is a setting for
SCSI options included as outlined in the bit meaning table above.
Solaris 7 default SCSI settings are for the maximum Ultra Wide
Speed. Since the /etc/system file can also affect other disks in the
system, consider the effects of implementing the scsi_options=0x7F8
mask on the other disks. You might consider the bus level or device
level setpoints as we discussed above rather than a system wide
setting. An example entry in the /etc/system file would be:
set scsi_options=0x7F8
Ault's new book "Oracle DISK I/O Tuning" can be ordered here:
|
|