
Chapter 12. Enabling Asynchronous I/O and Direct I/O Support
34
# echo 1048576 > /proc/sys/fs/aio-max-size
Alternatively, you can use sysctl(8) to change it:
# sysctl -w fs.aio-max-size=1048576
To make the change permanent, add the following line to the /etc/sysctl.conf file. This file is
used during the boot process:
$ echo "fs.aio-max-size=1048576" >> /etc/sysctl.conf
12.5. Verifying Asynchronous I/O Usage
To verify whether $ORACLE_HOME/bin/oracle was linked with asynchronous I/O, you can use the
Linux commands ldd and nm.
In the following example, $ORACLE_HOME/bin/oracle was relinked with asynchronous I/O:
$ ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /usr/lib/libaio.so.1 (0x0093d000)
$ nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents@@LIBAIO_0.1
$
In the following example, $ORACLE_HOME/bin/oracle has NOT been relinked with asynchronous I/
O:
$ ldd $ORACLE_HOME/bin/oracle | grep libaio
$ nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents
$
If $ORACLE_HOME/bin/oracle is relinked with asynchronous I/O it does not necessarily mean that
Oracle is really using it. You also have to ensure that Oracle is configured to use asynchronous I/O
calls, see Enabling Asynchronous I/O Support.
To verify whether Oracle is making asynchronous I/O calls, you can take a look at the /proc/
slabinfo file assuming there are no other applications performing asynchronous I/O calls on the
system. This file shows kernel slab cache information in real time.
On a Red Hat Enterprise Linux 3 system where Oracle does not make asynchronous I/O calls, the
output looks like this:
$ egrep "kioctx|kiocb" /proc/slabinfo
kioctx 0 0 128 0 0 1 : 1008 252
kiocb 0 0 128 0 0 1 : 1008 252
$
Once Oracle makes asynchronous I/O calls, the output on a Red Hat Enterprise Linux 3 system will
look like this:
$ egrep "kioctx|kiocb" /proc/slabinfo
kioctx 690 690 128 23 23 1 : 1008 252
kiocb 58446 65160 128 1971 2172 1 : 1008 252
Kommentare zu diesen Handbüchern