Home > Oracle Database / Applications Tips > Chapter excerpts from Oracle books > Oracle disk I/O tuning: HP-UX SCSI tuning, part 1
Oracle Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

CHAPTER EXCERPTS FROM ORACLE BOOKS

Oracle disk I/O tuning: HP-UX SCSI tuning, part 1


Mike Ault
08.25.2004
Rating: -5.00- (out of 5)


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   


The following is part of a series on the different aspects of disk I/O performance and optimization for Oracle databases. Each tip is excerpted from the not-yet-released Rampant TechPress book, "Oracle disk I/O tuning," by Mike Ault. Check back to the main series page for upcoming installments.
Mike Ault

Mike Ault is one of SearchOracle.com's Oracle Internals experts. Mike is senior Oracle consultant with Burleson Consulting, and one of the leading names in Oracle technology.

To view Mike's expert responses or to ask him a question, click here.


HP-UX SCSI tuning

Much like Sun Solaris, HP has several kernel based tuning parameters that are used to adjust the behavior of to SCSI interface, bus and device.

Probably, the most important is scsi_max_qdepth.

scsi_max_qdepth - This is the maximum number of I/Os that a single SCSI target will queue up for execution. The parameters has a minimum value of 1, a default set value of 8, and a maximum value of 255.

Some SCSI devices support tagged queuing, which means they can have more than one SCSI command outstanding at any point in time. The number of commands that can be outstanding varies by device and is not known to HP-UX. To avoid overflowing this queue, HP-UX will not send more than a certain number of outstanding commands to any SCSI device. This tunable sets the default value for that limit. The default value can be overridden for specific devices using ioctl. The ioctl is a device interface system control that allows commands to be issued to alter specific setpoints on devices; it is not a command line program.

Queue depth is synonymous to the tagged command queuing in other systems. When tagged command queuing is supported by a target, it allows the target to accept multiple SCSI commands for execution. By accepting multiple commands, intelligent on-disk controllers can optimize how the commands are carried out by positioning reads and writes in the order to minimize disk head movement between operations. Some targets can allow up to 256 commands to be stored from different initiators. Once the target command queue is full, the target terminates any additional I/O and returns a QUEUE FULL status to the initiator. Some older targets may support less than 256 commands to be queued, and this is the reason the setting defaults to 8. Why the value is set so low is not explained.

If the system has a combination of devices that support small and larger queue depths, then a queue depth can be set to a value, which would work for most devices. For specific devices, the system administrator can change the queue depth on a per device basis using SIO_SET_LUN_LIMIT in ioctl(). See the HP-UX manual entries on scsictl(1M) for more on how to use ioctl().

This value should only be raised in SCSI devices that have enough memory to support higher queue depth than the default set by HP. Such devices may offer better performance if the queue depth is set to a higher value.

Remember, the queue depth applies to all the SCSI devices that support tag queuing. Setting the queue depth to a value larger than the disk can handle will result in I/Os being held off once a QUEUE FULL condition exists on the disk. A mechanism exists that will lower the queue depth of the device in case of QUEUE FULL condition avoiding infinite QUEUE FULL conditions on that device similar to the process that lowers it to 1 on Sun Solaris. Nevertheless, this mechanism will periodically try higher queue depths and QUEUE FULL conditions will arise.

This parameter should be lowered when the connected SCSI devices support smaller queue depth or for load balancing. However, devices that support higher queue depth may not deliver optimal performance when a lower queue depth value is set.

The other tunable parameter in HP-UX for SCSI is scsi_maxphys, which sets the maximum allowed length of an IO on all SCSI devices. scsi_maxphys has a minimum and maximum setting of 1048576 (one megabyte) except on V-class systems, where it has the range of values: 16777215 and 33554432.

This tunable sets the maximum data size the SCSI subsystem will accept for an I/O. Depending on the device's characteristics and the device driver configuration, the maximum size allowed by the SCSI subsystem for a particular SCSI device might be lower than or equal to this tunable parameters value. It will never be greater.

The only time this parameter can be adjusted above one megabyte is when you have a V-Class system where it can be raised to 32 MB.

Click to buy the book, "Oracle disk I/O tuning," by Mike Ault.


About the author

Mike Ault is a SearchOracle.com expert and a senior Oracle consultant with Burleson Consulting, and one of the leading names in Oracle technology. The author of more than 20 Oracle books and hundreds of articles in national publications, Mike Ault has five Oracle Masters Certificates and was the first popular Oracle author with his landmark book "Oracle7 administration and management." Mike also wrote several of the "Exam Cram" books, and enjoys a reputation as a leading author and Oracle consultant. Ask Mike a question today!


Rate this Tip
To rate tips, you must be a member of SearchOracle.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



RELATED CONTENT
Chapter excerpts from Oracle books
Writing single-row and multiple-row subqueries
List the types of SQL subqueries
Using subqueries in SQL
Define SQL subqueries
Oracle 11g: PL/SQL Basics
Oracle 11g: Backup and recovery concepts
Migrating to Oracle: Expert Secrets to Migrate from SQL Server and MySQL
Oracle Database 11g SQL Tuning
Upgrading to Oracle Database 11g
Tuning the Oracle database with initialization parameters

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Oracle Development Solutions - SQL, J2EE, XML, SOA
HomeNewsTopicsTipsAsk the ExpertsMultimediaWhite PapersProductsBlogs
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2003 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts