众所周知,OSWatcher 是一系列 UNIX shell 脚本的集合,主要用于收集操作系统及网络信息,以便诊断因为操作系统资源问题导致的性能问题。但是由于Exadata数据库云平台的特殊性,比例在Exadata上RAC节点之间是通过infiniband交换机进行私网交互,需要在原有OSWatcher的基础上增加对这类系统资源的监控。所以从11.2.3.3版本开始, Oracle在Exadata数据库云平台上重新设计了一款全新系统信息收集及诊断工具ExaWatcher来代替OSWatcher。本文将对ExaWatcher进行一些简单的介绍。
特殊模块
因为Exadata数据库云平台通过infiniband交换机对存储进行访问及RAC节点之间的私网交互,所以在ExaWatcher中加入了infiniband相关信息的监控。以及存储磁盘相关的监控等。以下是这些监控模块的简单介绍。
– Diskinfo.ExaWatcher
# 收集模块: DiskinfoExaWatcher
# 收集命令: /bin/cat /proc/diskstats
通过这个模块显示磁盘、分区和统计信息,查看出具体的磁盘IO压力。
– IBCardInfo.ExaWatcher
# 收集模块: IBCardInfoExaWatcher
# 收集命令: /opt/oracle.ExaWatcher/IBCardInfoExaWatcher.sh 2>/dev/null
通过这个模块查看通过HCA卡端口查看节点之间的交互信息。
– IBprocs.ExaWatcher
# 收集模块: IBprocsExaWatcher
# 收集命令: /bin/cat /sys/class/net/bondib0/bonding/active_slave
# 收集命令: /bin/cat
/sys/class/net/ib0/carrier
# 收集命令: /bin/cat
/sys/class/net/ib1/carrier
# 收集命令: /usr/sbin/ibstatus
# 收集命令: /usr/bin/ibv_devinfo
通过这个模块查看每个服务器上HCA卡相关信息。
– LGWR.ExaWatcher
# 收集模块: LGWRExaWatcher
# 收集命令: /opt/oracle.ExaWatcher/LGWRExaWatcher.sh
通过这个模块查看收集系统调度器统计信息。
– Lsof.ExaWatcher
# 收集模块: LsofExaWatcher
# 收集命令: /usr/sbin/lsof +c0 -w +L
-b -R -i
# 收集命令: /usr/sbin/lsof +c0 -w +L
-b -R -U
# 收集命令: /usr/sbin/lsof +c0 -w +L1
-b –R
通过这个模块查看当前系统打开文件。
– MegaRaidFW.ExaWatcher
# 收集模块: MegaRaidFWExaWatcher
# 收集命令: /opt/MegaRAID/MegaCli/MegaCli64 fwtermlog dsply -a0
通过这个模块查看raid卡日志信息。
– RDSinfo.ExaWatcher
# 收集模块: RDSinfoExaWatcher
# 收集命令: /opt/oracle.ExaWatcher/RDSinfoExaWatcher.sh 2>/dev/null
通过这个模块私网交互过程中数据包的传输情况。
维护方便
ExaWatcher
日志保留方式与之前的 OSWatcher 不同。ExaWatcher 调用维护模块 ExaWatcherCleanup 确保其磁盘空间使用维持在特定值以下。此模块会检查 ExaWatcher 当前使用的磁盘空间大小,如果超过特定阀值(默认数据库节点3GB/存储节点600MB),那么旧数据会被删掉。
当出现性能问题时,我们需要收集问题时间点的OSWatcher日志进行分析。但是这个收集的过程,因为生成的日志文件是按照文件类型而不是按照生成时间保存在不同的目录下。需要对操作系统命令有一些了解才能快速收集。
但是在ExaWatcher中,加入了具体的命令GetExaWatcherResults来收集日志信息。且更为方便多样化。我们可以指定收集一个时间段的日志;可以指定一个时间间隔来收集日志。可以通过指定 [-d|–archivedir] 参数修改日志生成的目录。比如:
基于开始/结束时间的收集:
# ./GetExaWatcherResults.sh –from 01/25/2014_13:00:00 –to
01/25/2014_14:00:00
基于时间间隔的收集。收集13:00前后各4小时的数据:
# ./GetExaWatcherResults.sh –at 01/25/2014_13:00:00 –range 4
将默认输出文件夹为 /opt/oracle.ExaWatcher/archive/ExtractedResults; 修改为/tmp/ExaWatcherArchive
:
# ./GetExaWatcherResults.sh –from 01/25/2014_13:00:00 –to
01/25/2014_14:00:00 –archivedir /tmp/ExaWatcherArchive
更多关于 ExaWatcher 的信息可以通过以下命令查看:
# ExaWatcher.sh –help
# ExaWatcherResults.sh –help
以上对Exadata数据库云平台上的操作系统资源监控工具ExaWatcher进行简单的介绍。ExaWatcher还在不断的完善中。比如OSWatcher上有图形化的分析工具OSWatcher Analyzer (oswbba)对产生的oswatcher数据进行分析。但是Exawatcher还没有这部分功能。但是相信在不久的将来也会把这个功能整合进来。