找到ASM磁盘对应的OS设备
iostat在12.2的版本里面有 -G diskgroup,在12.1的版本里面没有,lsdsk也是这样。
ASMCMD> lsdsk Path /dev/asmdisk1 /dev/asmdisk2 ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 102400 62402 0 62402 0 Y DATA/
从上面可以看到DATA这个asm磁盘组对应的磁盘有两个asmdisk1和asmdisk2
[root@rac2 oracle]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29a795cf5b3e8954492809811b3", NAME="asmdisk1", OWNER="grid", GROUP="asmdba", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c294bf24bd743290fcdd12a6fd28", NAME="asmdisk2", OWNER="grid", GROUP="asmdba", MODE="0660" [root@rac2 oracle]# ll /b bin/ boot/ [root@rac2 oracle]# /sbin/scsi_id -g -u -d /dev/sdb 36000c29a795cf5b3e8954492809811b3 [root@rac2 oracle]# /sbin/scsi_id -g -u -d /dev/sdc 36000c294bf24bd743290fcdd12a6fd28 [root@rac2 oracle]#
根据设备的UUID可以查到对应的OS设备是/dev/sdb和/dev/sdc。
使用ASMCMD的iostat和OS的iostat监控IO
os的命令:$ iostat -d sdb sdc -k 100
ASMCMD的命令 asmcmd iostat 100
观察结果:
从OS和ASM看到的io性能一样,注意asm显示的100秒的数据,而os显示的是1秒的数据;
从OS和ASM看到的io都是单节点的IO,和一般人想象的OS看到的是单节点的IO,ASM显示的整个实例的IO不一样;
如果采用Flex ASM,在ASM上查到的IO可能是多个节点的IO,这取决与ASM服务的节点个数,查看Flex ASM的方法:asmcmd showclustermode;
监控多个磁盘的总IO可以使用 iostat -g sdb,sdc -H ;