ITPub博客

首页 > 数据库 > Oracle > IBM v7000 存储 pv参数queue_depth 为1 引起的IO问题

IBM v7000 存储 pv参数queue_depth 为1 引起的IO问题

原创 Oracle 作者:哎呀我的天呐 时间:2014-11-25 17:30:47 0 删除 编辑



mos上一篇文章127 5596. 1

AWR报告显示平均IO时间过长,因为年初换的存储, 分析是存储上存在问题。
操作系统上看topas

Topas Monitor for host:     nc_database          EVENTS/QUEUES FILE/TTY
Tue Nov 25 15:51:32 2014    Interval: 2          Cswitch 4315 Readch 14.2M
                                                 Syscall 17724 Writech 149.3K
Kernel   2.3 |#                              |   Reads 1075 Rawin 0
User    21.5 |#######                        |   Writes 324 Ttyout 354
Wait    39.0 |###########                    |   Forks 2 Igets 0
Idle    37.3 |###########                    |   Execs 1 Namei 276
                                                 Runqueue 1.0 Dirblk 0
Network KBPS I-Pack   O-Pack    KB-In   KB-Out   Waitqueue 0.
en0    241.0  372.5    332.1     79.3    161.7
lo0      0.1    1.0      1.0      0.0      0.0   PAGING MEMORY
en1      0.0    0.0      0.0      0.0      0.0   Faults 3230 Real,MB 31616
                                                 Steals 0 % Comp 85.5
Disk   Busy%   KBPS      TPS  KB-Read  KB-Writ   PgspIn 0 % Noncomp 0.
hdisk7  84.4   41.3K   668.7    41.3K      4.0   PgspOut 0 % Client 0.
hdisk8  99.9    2.5K   295.6     2.3K    268.2   PageIn 0
hdisk6   0.5  386.0      5.5      8.0    378.0   PageOut 0 PAGING SPACE
hdisk9   0.0  236.2      2.5      0.0    236.2   Sios 0 Size,MB 32768
hdisk10  0.0    0.0      0.0      0.0      0.0   % Used 3.3
hdisk11  0.0    0.0      0.0      0.0      0.0   NFS (calls/sec) % Free 97.7
hdisk    0 0    0.0      0.0      0.0      0.0   ServerV2 0
cd0      0.0    0.0      0.0      0.0      0.0   ClientV2 0 Press:
hdisk4   0.0    0.0      0.0      0.0      0.0   ServerV3 0 "h" for help
hdisk5   0.0    0.0      0.0      0.0      0.0   ClientV3 0 "q" to quit




queue_depth为1


参考----
设置queue_depth

在AIX环境中,正确设置FAStT 逻辑磁盘的队列深度(queue_depth)对系统性能非常重要。 对于较大的FAStT配置,有许多卷和主机连接,这个设置对高可靠性来讲就更加关键。队列深度太大会导致文件系统的丢失或主机死机。下面介绍了如何正确设置磁盘的队列深度及其计算方法。
我们可以使用如下的公式来决定最大的队列深度:

512 / (主机数 * 每个主机的LUN数 )

例如一个系统有4个主机, 每个有 32 LUNs (这是每个AIX主机的最大LUN数), 那么最大队列深度应该是4:

512 / ( 4 * 32 ) = 4

这时,你应该把hdiskX 的queue_depth 属性设为如下:

#chdev -l hdiskX -a queue_depth=4 -P


可以使用iostat -D查看

其中sqfull表示自系统启动以来queue_deeth超出的次数

IBM工程师建议queue_depth的值在40-128之间

如何设置:

queue_depth参数会影响disk i/o性能,特别是在数据库等i/o密集性应用中。适当调整设置此参数,会提高整体应用的性能。下面是在AIX 5.3,IBM ds4300上调整此参数的步骤及注意事项,记录一下。
下面物理磁盘hdisk2是基于IBM存储上的,做的raid 5,此盘属于vg datavg中。
一,首先备份datavg.在生产环境作任何调整,一定要切记安全第一,备份是必不可少的。
 #smit savevg
二,查看所需修改的hdisk2上queue_depth的值。
 #lsattr -El hdisk2|grep queue_depth
三,首先umount datavg上的文件系统。
 #umount /u2
 四,vary off vg。
 #varyoffvg datavg
 五,删除磁盘hdisk2.
 #rmdev -l hdisk2
 六,修改磁盘hdisk2 queue_depth参数.
#chdev -l hdisk2 -a queue_depth=16(此值为所需修改的具体queue_depth值) -P
 七,增加磁盘hdisk2.
 #mkdev -l hdisk2
 八,vary on vg.
 #varyonvg datavg
 九,mount datavg上文件系统
 #mount /u2
十,最后查看一下queue_depth参数是否修改成功。
 #lsattr -El hdisk2|grep queue_depth
如上面查看queue_depth值已变成所需值,则整个过程完成。如有条件,最好能重启一下机器。应注意的是此值如设置不合理,可能会导致系统hang住,或死机现象。
本人曾亲自踫到由于此值设置过大,导致系统出现异常,init进程始终占用cpu在20%左右,

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29990276/viewspace-1346318/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: PLSQL学习-【9包】
下一篇: 11gOCM考试大纲
请登录后发表评论 登录
全部评论
https://cloud.tencent.com/developer/inventory/14362

注册时间:2014-10-30

  • 博文量
    403
  • 访问量
    2528797