Friday, October 29, 2010

HOW TO MANAGE ASYNCH I/O on RHEL

REASON

1.                   You can get significant performance in I/O operations on DB

To verify ASYNCH


To verify whether the oracle executable ($ORACLE_HOME/bin/oracle) was linked with asynchronous I/O, run
In the following example, oracle is linked with asynchronous I/O, otherwise you get nothing.

ldd $ORACLE_HOME/bin/oracle | grep libaio
        libaio.so.1 => /usr/lib64/libaio.so.1 (0x0000002a96ef7000)
nm $ORACLE_HOME/bin/oracle | grep io_getevent
                 w io_getevents@@LIBAIO_0.4

Link ASYNCH to oracle, if it is not linked

shutdown all
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk async_on
make -f ins_rdbms.mk ioracle
startup

Even if oracle is linked it doesn’t mean your ASYNCH is ON.
Change parameter in case of block device like RAW

# init.ora
disk_asynch_io = true
or
#spfile
alter system set disk_asynch_io = true scope=spfile;

and if you have file system like ext3 than add this one also

# init.ora
filesystemio_options = asynch
or
#spfile
alter system set filesystemio_options='ASYNCH' scope=both;

Check your job

ASYNCH is ON
cat /proc/slabinfo | grep kio
kioctx               305    360    384   10    1 : tunables   54   27    8 : slabdata     36     36      0
kiocb                255    255    256   15    1 : tunables  120   60    8 : slabdata     17     17      0


Uninstall, Fall back

shutdown all
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk async_off
make -f ins_rdbms.mk ioracle
startup

ASYNCH is OFF
cat /proc/slabinfo | grep kio
kioctx               121    140    384   10    1 : tunables   54   27    8 : slabdata     14     14      0
kiocb                     0      0    256   15    1 : tunables  120   60    8 : slabdata      0      0      0

5 comments: