Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11682812
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-07-17 10:25:23

HP小机利用iscsi连接(一个网口)EMC AX300 存储,创建oracle表空间的性能只有20几兆,我觉得太低了,优化方法如下:

简单的,如果是裸盘安装的话,把操作系统异步IO打开性能就上来了,如果是文件系统的话,可能要对操作系统做一些优化, 比如增加SGA或者加快系统页空间交换的频率。打开异步IO的方法如下:
一、说说异步IO(Aio)
  在Hp-ux中,当采用同步IO的方式时,这就意味着在下一次写IO进行之前,前一次IO必须返回"成功写完成"的信息,可以看到同步IO方式在IO负荷比较大的系统存在着性能的瓶颈。而采用异步IO方式时,在写请求发出之后操作系统会立即反回给应用一个写成功的信息,余下的事就由操作系统完成了。在Hp-ux中使用Oracle、Sybase这些数据库时,为减少IO的瓶颈、提高库的性能,建议打开异步IO,Hp在这方面相对Aix来说相对麻烦一些。

二、Hp-ux方面打开Aio需要做的设置
1、Hp-ux使用Aio的补丁要求
a、Hp-ux 11.00的补丁要求为:
  PHKL_22126: s700_800 VM,async,hyperfabric
b、HP-UX 11i的补丁要求为:
  PHKL_25212 vm preemption point, mlock/async_io
  PHKL_25506 asyncio driver patch
  使用swlist -l product检查一下有无如上的补丁,如没有联系Hp的supporter将其打上。
2、创建aio的字符设备
a、建立aio字符设备
  #/sbin/mknod /dev/async c 101 0x0
b、调整设备的属主,这个例中假定用户为oracle,组为dba
  #chown oracle:dba /dev/async
c、调整设备的权限位
  #chmod 660 /dev/async
3、Hp-ux要要调整的内核参数
调整内核参数据需要使用root用户
a、把asyncdsk置为in
  sam-> Kernel Configuration -> Drivers->asyncdsk调整为in
b、调整max_async_ports参数
  这个参数限定的是同时使用/dev/async设备的最大进程数,对于Oracle这个参数应大于等于init.ora中的processes+后台的进程数,对于sybase它所标识的是最大的工作进程数。当max_async_ports的值达到时,其余的进程将采用同步IO的方式。
c、调整set aio_max_ops参数
  这个参数所限定的是在任意一个时间点排队的Aio操作的最大的数目,一般保持默认值就可以,可以用glance监测一下。
d、调整fs_async参数
  这个参数表明的是对文件系统的写是否采用Aio的方式,设定fs_async=0指定对于文件系统写不用Aio,设定fs_async=1则指定使用aio的方式,Oracle不建议将这个什设置为1
4、其它方面设置
重中之重的一点是一定要为oracle用户的组(一般为dba)设定MLOCK的权限,否则在数据库启动会报错或在库运行时会出现莫名其妙的数据库hang的现象,我简单说一下。
a、涉及到两个命令getprivgrp用于检查组有什么权限,setprivgrp用于设定组的权限,举个例子大家就明白了
  eg1:检查dba组是否有MLOCK的权限
   root#getprivgrp dba
  eg2:设定dba组的MLOCK的权限
   roolt#setprivgrp dba MLOCK
b、也可以把设定加入配置文件中,这样在下次启动时就自动生效了。
  在/etc/privgroup中加入如下的一行:
  dba MLOCK  
  如果privgroup不存在,可以编辑一个。

三、数据库方面使用Aio要要做的设置
1、oracle方面
a. 7.3.0以前的版本  :不需要配置init.ora中的参数
b. 7.3.X       :在init.ora中设定use_async_io = TRUE
c. 8.X 及以后的版本 :在init.ora中设定disk_asynch_io = TRUE
2、sybase方面
默认就是打开aio的。

四、其它
1、检查一下aio是否生效了
#fuser /dev/async
有进程列出来说明aio已经生效了。
2、我的hp11.00+oracle8.1.6.0.0的环境启用aio时而不时的会出现坏块的问题(ora-01578),请大家注意,但在hp11i的系统与Oracle8i,9i配 合中没出现过这个问题。
阅读(346) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~