异步I/O的优
点:异步I/O是和同步I/O相比较来说的,如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完。相反,异步I/O操作在
后台运行,I/O操作和应用程序可以同时运行,提高了系统性能; 使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显,
因此像数据库,文件服务器等应用往往会利用异步I/O,使得多个I/O操作同时执行。
前段时间也在公司的服务器上折腾过,不过搜到的文档对应的平台都是Oracle9iR2在RHEL 3、AIX、HP-UNIX,测试半天未果。今天在My Oracle Support上找到了好几篇文档,终于搞明白了这个问题。
平台:Redhat Enterprise Linux 5 64bit,Oracle 10gR2 10.2.0.4 64bit
1、首先用root用户安装以下必要的rpm包
# rpm -Uvh libaio-0.3.106-3.2.i386.rpm
# rpm -Uvh libaio-0.3.106-3.2.x86_64.rpm
# rpm -Uvh libaio-devel-0.3.106-3.2.i386.rpm
# rpm -Uvh libaio-devel-0.3.106-3.2.x86_64.rpm
2、在系统级支持异步I/O
与[Note 225751.1]
介绍的在RHEL 3里面设置异步IO不同,不需要设置aio-max-size,而且'/proc/sys/fs'路径下也没有这个文件。因为从2.6 kernel开始,已经取消了对IO size的限制[Note 549075.1]
。另外根据[Note 471846.1]
,Oracle建议将aio-max-nr的值设置为1048576或更高。
# echo > /proc/sys/fs/aio-max-nr 1048576
3、在数据库级启用异步I/O
首先修改数据库参数。与[Note 225751.1]
在RHEL
3里面设置异步IO不同,Oracle10gR2默认是打开了对异步IO的支持的,不需要重新编译数据库软件。在'$ORACLE_HOME/rdbms
/lib'路径下,也没有'skgaioi.o'这个文件。在某些情况下,Oracle无法将IO行为或事件报告给操作系统[Note 365416.1]
,因此需要做以下操作。
SQL> alter system set disk_asynch_io=TRUE scope=spfile;
SQL> alter system set filesystemio_options=asynch scope=spfile;
SQL>shutdown immediate
$ cd $ORACLE_HOME/rdbms/lib
$ ln -s /usr/lib/libaio.so.1 skgaio.o
$ make PL_ORALIBS=-laio -f ins_rdbms.mk async_on
SQL>startup
在Oracle10gR2中AIO默认已经是开启的了。可以通过ldd或者nm来检查oracle是否已经启用了AIO支持,有输出代表已经启用。
[oraprod@db01 ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /usr/lib64/libaio.so.1 (0x00002aaaac4a9000)
[oraprod@db01 ~]$ /usr/bin/nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents@@LIBAIO_0.4
4、检查异步I/O是否在使用
根据[Note 370579.1]
,可以通过查看slabinfo
统
计信息查看操作系统中AIO是否运行,slab是Linux的内存分配器,AIO相关的内存结构已经分配,kiocb值的第二列和第三列非0即是已使用。
与kernel 2.4.x不同,没有显示kiobuf,因为从kernel 2.5.43开始,kiobuf已经从内核中被移除。
$ cat /proc/slabinfo | grep kio
kioctx 64 110 384 10 1 : tunables 54 27 8 : slabdata 11 11 0
kiocb 13 315 256 15 1 : tunables 120 60 8 : slabdata 21 21 44
$
分享到:
相关推荐
Requirements For Installing Oracle10gR2 On RHEL 5&OEL 5 (x86_64)
RHEL6及Oracle11GR2安装说明
本文将为您详细介绍如何在RHEL5环境中安装和配置Oracle10gR2数据库管理系统。以下是安装配置的详细步骤和知识点: 前提条件 在开始安装之前,需要确保您的Linux操作系统已经安装好,并且磁盘分区满足安装要求。本文...
Oracle 11gR2 RAC RHEl6 安装规范和手册,某大型国有电信公司专用,使用IBM光存储设备,非虚拟机版本,有multipath 的相关配置和RAW的绑定说明,内核参数的修改说明等。非常详细,照做就能安装成功。
create database - Oracle11gr2 on rhel 手动建库 最精炼的手动建库步骤,一步步照做即可。
RHEL5安装oracle10gr2 详细步骤,及oracle设置自启动服务。
Oracle 10gR2 RAC_ RHEL4_VMWare GSX 簡明安裝步驟
rhel 6中搭建oracle 11gr2 rac环境。
在RHEL5.5 x86_64系统上安装oracle 11gR2所需的补丁包
RHEL5.5下安装Oracle11gR2
Oracle 11gR2 RAC ASM on RHEL6.4安装流程
oracle 10g rac on rhel5.5 相关包
rhel4安装oracle11gR2, 附录B中包括oracle11gR2安装时对系统的全部检查项。
RHEL linux 6下安装单机Oracle11g,含备份方案超详细 ,非常牛逼,大家可以看看
介绍在RHEL5.4上安装Oracle 10gR2 包含全部的问题解决. 一站式的安装手记 本人原创,欢迎提宝贵意见.
RHEL6上安装Oracle11gR2的手册(图文并茂)
详细的讲解了如何在64位RHEL 5安装Oracle 11gR2。
ORACLE 12gR2 RHEL7 SILENT install 单机静默安装 详细步骤
根据文档在linux平台中配置数据库双机热备集群。基于Oracle RAC技术。Linux6.5版本以上,Oracle 11g以上。
rhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5安装oracle 11gr2 RAC.txtrhel 5.5...