Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58577
  • 博文数量: 2
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-16 15:34
文章分类
文章存档

2011年(2)

我的朋友
最近访客

分类: Oracle

2011-11-21 23:01:55

 最近一个生产数据库IO性能比较差,用户目前暂时无升级硬件系统的打算,因此只能在系统和数据库上面做文章。在metalink上查找了一番,正好看见一篇有关《Asynchronous I/O (aio) on RedHat Advanced Server》(Note:225751.1)的文章,于是经过实验后,成功将数据库改成异步IO模式。现将基本步骤贴出来,供大家讨论:
1,Linux系统环境和Oracle版本要求
不是所有的Linux版本都可以实现异步IO,根据metalink上的文档,目前只支持Red Hat Advanced Server release 或者 UnitedLinux / SUSE。
Oracle数据库的版本要求Oracle RDBMS 9i release 2或10G
我的Linux环境:Redhat Linux AS3 2.4.21-27
Oracle环境:Oracle9204 for Linux
2,OS参数设置
Linux系统参数需要设置下面几个:
Allow 1MB I/Os (Linux 2.4 only)
• fs.aio-max-size =1048576
Maximum number of concurrent asynch I/O requests
• fs.aio-max-nr
Maximum memory pinned for asynch I/O (Linux 2.4 only)
• fs.aio-max-pinned
3,Oracle数据库初始化参数设置
• disk_asynch_io = true (这是默认的)
如果采用的是文件系统
• filesystemio_options = asynch
如果采用的是裸设备(只支持Red Hat Enterprise Linux 3)
• filesystemio_options = directIO
4,Linux rpm包检查
1> libaio-0.3.96-3.i386.rpm
2> libaio-devel-0.3.96-3.i386.rpm
5,Oracle Patch要求
由于Oracle binary默认不支持async io,需要打上patch(第一次实验的时候,由于没有打上该patch,数据库只能到nomout状态,在mount的时候就死在那里。)
Oracle9204:patch3016968
Oracle9205:patch3208258_9205
Oracle9206:patch3208258_9206
安装包的时候,不需要用什么opatch工具,直接将zip包解压,将里面的files/lib/stubs/下的三个文件,copy到对应的目录中$ORACLE_HOME/lib/stubs
6,启用 Asynchronous I/O
1> cd to $ORACLE_HOME/rdbms/lib
a) make -f ins_rdbms.mk async_on
b) make -f ins_rdbms.mk ioracle
7,启动并打开数据库
8,检查Asynchronous I/O情况
在Linux系统中,使用iostat可以观察idle%情况,也可以用sar 工具来检查。如:
# sar -b 1 5 (for each 1 second. 5 lines are displayed.)
Linux 2.4.9-e.3 (rhas.it.oracle.com) 01/13/2003
09:11:35 PM tps rtps wtps bread/s bwrtn/s
09:11:36 PM 1.00 0.00 1.00 0.00 16.00
09:11:37 PM 11.00 5.00 6.00 65.00 563.00
09:11:38 PM 5.00 0.00 5.00 0.00 432.00
09:11:39 PM 2.00 0.00 2.00 0.00 272.00
09:11:40 PM 0.00 0.00 0.00 0.00 0.00
Average: 3.80 1.00 2.80 13.00 256.60
sar工具在包sysstat-6.0.-1.i586.rpm里,具体使用方法和参数见man sar
至此,异步io设置工作完成,数据库运行正常。IO性能有一定提升。原先系统的io idle%一直在50%左右,改成异步io后,提高到75%左右,后面将进一步跟踪观测。
参考文档:
metalink 《Asynchronous I/O (aio) on RedHat Advanced Server》
Note:225751.1
Oracle OpenWorld Linux 演示文稿《优化 Linux I/O》

 a
阅读(425) | 评论(0) | 转发(0) |
0

上一篇:redhat as3+oracle 9i 安装脚本

下一篇:没有了

给主人留下些什么吧!~~