Operating System - HP-UX
1753454 Members
6148 Online
108794 Solutions
New Discussion юеВ

Re: Effect of disk_asynch_io=true on Oracle Instances that are not on RAW Storage

 
Eric Antunes
Honored Contributor

Re: Effect of disk_asynch_io=true on Oracle Instances that are not on RAW Storage

Hi again,

Note:47328.1 says that we should use dbwr_io_slaves if we can't get asynchronous I/O...
Each and every day is a good day to learn.
anugrahargon
New Member

Re: Effect of disk_asynch_io=true on Oracle Instances that are not on RAW Storage

Got the following note from HP-Oracle Competency center (www.hporaclectc.com):

Appendix 2: Raw Devices + Asynchronous IO

We recommend to use raw devices instead of file system files for Oracle
datafiles and to use asynchronous IO, both resulting in much better
performance.

Use stripping with a large number of disks to spread IO over multiple disks (high number is good). Define the number of disks in your stripe set also dependent of your future growth of your storage, otherwise you will get probably hot spots in the future. For the stripping are 2 possibility exists. For a high number of disks we did not figured out big difference in performance.
Use the HP-UX Logical Volume Manager to stripe logical volumes across multiple disks. Recommended stripe size: Quite often is 64KB still used
or
use HP-UX Extend-based-striping with 1 MB or even larger extends.

To implement asynchronous IO on HP-UX systems (raw devices are required)
- add the asyncdsk Driver (Asynchronous Disk Pseudo Driver)
to the HP-UX Kernel (using SAM) and regenerate new kernel
- create the device file:
- /sbin/mknod /dev/async c 101 0x0
- chown oracle:dba /dev/async
- chmod 660 /dev/async
- depending on the HP-UX version you have to provide privilege to group dba
- HP-UX 11.0 (dependend on the patch level)
Patch PHKL_22380 and all newer patches which supersede it (like PHKL_22440) use a special "feature" which has to be set to really use asyncio. As root:
/usr/sbin/setprivgrp dba MLOCK

- HP-UX 11i (>=11.11)
To use asyncio: As root:
/usr/sbin/setprivgrp dba MLOCK

- set oracle init.ora parameters:
- use_async_io=true (Oracle 7.3)
- disk_async_io = true (>= Oracle 8i)
- db_writers=1 ( < Oracle 7.3)

To test the async IO
- check with fuser /dev/async
- or look with glance/gpm at the ora_dbwr.
- look for open files:
- /dev/async must be shown as opened file
- if /dev/async is not seen and you want to use asyncio:
To check the priviliges to use async IO on HP-UX 11 (with Patch PHKL_22380 and all newer patches which supersede it like PHKL_22440) and HP-UX 11i
- To check the privilege capabilities for a group, issue the command: /usr/bin/getprivgrp
- If the output of getprivgrp(1) does not indicate that the group has the MLOCK privilege, it can be set by issuing the following command as root:
/usr/bin/setprivgrp dba MLOCK

When not using asynchronous IO
- set db_writers to number of disk (for Oracle 7)
- set db_writer_processes = 1 ├в 10 (>= Oracle 8i)
- set dbwr_io_slaves = 0 ├в 999 (>= Oracle 8i)
(Please test with your application, if the behaviour using multiple db_writer_processes is better than use multiple dbwr_io_slaves)

Please check also appendix 6 for Oracle 9i (SCHED_NOAGE)

Could someone please explain it?
Thanks,
Dado
Eric Antunes
Honored Contributor

Re: Effect of disk_asynch_io=true on Oracle Instances that are not on RAW Storage

Hi Dado,

It's simple: you need Raw Devices to use Asyncronous I/O mode on Oracle, witch has a better performance than Syncronous I/O mode.

Best Regards,

Eric Antunes
Each and every day is a good day to learn.