联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
使用ASM的朋友估计都有一个困惑,ASM就是一个黑盒子,怎么才能够做到类似如裸设备或者文件系统一样,通过系统的命令(iostat)来监控其磁盘IO的运行性能.其实ORACLE在设计ASM的过程中,也就考虑到了这个需求,把磁盘相关的情况都记录到了ASM相关视图中v$asm_disk和v$asm_disk_stat(这两个视图功能相同,只是查询v$asm_disk需要每次访问磁盘头获取数据,v$asm_disk_stat是磁盘头存储在内存中的数据,查询v$asm_disk_stat对磁盘影响非常小),所以我们可以通过查询v$asm_disk_stat中的数据,然后做减法就可以获得asm disk某个时间段的磁盘io性能情况.ORACLE提供了相关工具叫做asmiostat用来监控,具体可以参考ASMIOSTAT Script to collect iostats for ASM disks [ID 437996.1]
确保TIMED_STATISTICS=TRUE
虽然是默认值,多检查无错,因为到该值为false之时READ_TIME/WRITE_TIME为0
[grid@xifenfei tmp]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Fri Feb 1 08:29:01 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Automatic Storage Management option SQL> show parameter TIMED_STATISTICS NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ timed_statistics boolean TRUE
asmiostat使用
[grid@xifenfei tmp]$ ./asmiostat.sh help=y Invalid parameter: <interval> must be > 0; <count> must be >= 0 ./asmiostat.sh [-s ASM ORACLE_SID] [-h ASM ORACLE_HOME] [-g diskgroup] [<interval>] [<count>] Output: DiskPath - Path to ASM disk DiskName - ASM disk name Gr - ASM disk group number Dsk - ASM disk number Reads - Reads Writes - Writes AvRdTm - Average read time (in msec) AvWrTm - Average write time (in msec) KBRd - Kilobytes read KBWr - Kilobytes written AvRdSz - Average read size (in bytes) AvWrSz - Average write size (in bytes) RdEr - Read errors WrEr - Write errors
相关值说明
DiskPath - Path to ASM disk DiskName - ASM disk name Gr - ASM disk group number Dsk - ASM disk number Reads - 指定时间内I/O读请求次数 Writes - 指定时间内I/O写请求次数 AvRdTm - 平均每次I/O读请求所需时间 (in msec) AvWrTm - 平均每次I/O写请求所需时间 (in msec) KBRd - 指定时间内读操作的量(KB) KBWr - 指定时间内写操作的量(KB) AvRdSz - 平均每次I/O读请求得到的数据量(B) AvWrSz - 平均每次I/O写请求得到的数据量(B) RdEr - 指定时间内I/O读请求错误次数 WrEr - 指定时间内I/O写请求错误次数
asmiostat效果展示
[grid@xifenfei tmp]$ ./asmiostat.sh -s $ORACLE_SID -h $ORACLE_HOME -g DATA 1 3 Date: Fri Feb 1 08:31:45 CST 2013 Interval: 1 secs Disk Group: DATA DiskPath - DiskName Gr Dsk Reads Writes AvRdTm AvWrTm KBRd KBWr AvRdSz AvWrSz RdEr WrEr /dev/sdb - DATA_0000 1 0 0 0 0.0 0.0 0 0 0 0 0 0 Date: Fri Feb 1 08:31:47 CST 2013 Interval: 1 secs Disk Group: DATA DiskPath - DiskName Gr Dsk Reads Writes AvRdTm AvWrTm KBRd KBWr AvRdSz AvWrSz RdEr WrEr /dev/sdb - DATA_0000 1 0 4 3 0.6 1006.1 0 0 0 0 0 0 Date: Fri Feb 1 08:31:49 CST 2013 Interval: 1 secs Disk Group: DATA DiskPath - DiskName Gr Dsk Reads Writes AvRdTm AvWrTm KBRd KBWr AvRdSz AvWrSz RdEr WrEr /dev/sdb - DATA_0000 1 0 8 2 1.3 1.5 0 0 0 0 0 0
也不感谢我一下…………
如果是10g的rac,asmcmd程序在$ORACLE_HOME中,所以配置需要写成
lunar,
谢谢帮忙搞定该问题