RAC CHM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34556414/article/details/82907196

读书笔记:

 

CHM

CHM(cluster health monitor)是Oracle提供的一款工具,用来收集操作系统的资源(CPU,内存,SWAP,进程,I/O以及网络等)的统计信息。从11.2.0.2版本开始,CHM会以初始化资源ora.crf的形式存在集群的每一个节点上。例如:

[grid@RAC1 ~]$ crsctl stat res -t -init

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS       

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.asm

      1        ONLINE  ONLINE       rac1                     Started             

ora.cluster_interconnect.haip

      1        ONLINE  ONLINE       rac1                                         

ora.crf

      1        ONLINE  ONLINE       rac1                                         

ora.crsd

.......................................................................................................................................

相对于OSwatcher,CHM直接调用OS的API,系统开销更小,CHM每秒收集一次数据(在11.2.0.3版本当中,改为5s一次)具有更强的实时性。

而OSWatcher的优点是搜集的信息更加全面(例如:使用traceroute命令检测私网的连通性),而且所生成的数据保留的时间可以设置的很长,但是数据实时性没有CHM强,产生的信息可能占用很大的磁盘空间,因此这两个工具并不能互相代替,而是互补,如果可以,两个工具都使用。

CHM搜集的系统资源数据对于诊断系统的节点重启,hang,实例驱逐,性能问题都是非常有帮助的,另外用户可以使用CHM来及早发现一些系统负载异常,内存异常等问题,从而避免产生更加严重的问题,另外CHM还可以作为单独的工具安装在Linux和Windows平台上。

CHM主要由下面组件构成:

组件1:CHM档案库(Repository):它是一个Berkeley数据库(12c版本开始使用Oracle数据库,称为GIMR)作为保存从各个节点搜集到的操作系统统计信息的档案库,默认情况下,它会存在<gi_home>/crf/db/<节点名>下,默认占用1GB的磁盘空间。对于绝大数的系统,每个节点每天搜集的统计信息大约会占用500M左右的空间。这里要强调的是CHM最大的信息保留天数为3天,这样做的目的就是为了减少CHM档案库所占用的磁盘空间。

组件2:系统监控服务(System Monitor Service):它会以osysmond.bin守护进程的方式在所有节点运行,osysmond.bin负责定期搜索本地节点的操作系统信息,并将搜集到的信息发给主节点上的集群日志服务。

组件3:集群日志服务(Cluster Logger Service):这个进程会以守护进程ologgerd的形式运行在集群的CHM的主节点(Master Node)和(Replication Node)上。主节点的ologgerd负责接收从所有节点的osysmond.bin发送过来的操作系统信息,并记录到主节点的CHM档案库中;副节点ologgerd负责接收从主节点的集群日志服务发送过来的操作系统统计信息,并记录到副节点的CHM档案库,从而实现CHM档案库的高可用性。

下图是CHM的工作方式:

CHM的工作方式

步骤1:各个节点osymond通过集群私网向主节点的ologgerd发送本地节点的操作系统统计信息。

 

步骤2:主节点ologgerd向本地节点的CHM档案库写入收集到的统计信息,同时发送给副节点ologgerd。

 

步骤3:副节点ologgerd向本地节点的CHM档案库写入收集到的统计信息。

 

若CHM主节点出现问题,副节点会接管CHM并成为新的主节点,之后新的主节点会从集群其他正常节点当中再选出新的副节点。osysmond和ologgerd以守护进程都会以实时优先级运行,以确保CHM能够准确的准时的搜集操作系统信息。

 

[grid@RAC1 ~]$ ps -ef | grep osysmond

root      2204     1  2 10:41 ?        00:01:17 /u01/app/11.2.0/grid/bin/osysmond.bin

grid     18832  5678  0 11:45 pts/0    00:00:00 grep osysmond

[grid@RAC1 ~]$ ps -ef | grep ologgerd

root      2341     1  2 10:42 ?        00:01:44 /u01/app/11.2.0/grid/bin/ologgerd -M -d /u01/app/11.2.0/grid/crf/db/rac1

grid     18926  5678  0 11:45 pts/0    00:00:00 grep ologgerd

 

Oracle提供了oclumon和CHMOSG两款工具来访问CHM的数据,CHMOSG是图形化界面工作,oclumon是命令行工具,这里只介绍oclumon命令。

(1)命令1:查看主节点和副节点

[grid@RAC1 ~]$ oclumon manage -get MASTER REPLICA

Master = rac1

Replica = rac2

 Done

(2)命令2:查看当前的统计信息的保存时间

[grid@RAC1 ~]$ oclumon manage -get repsize

CHM Repository Size = 61511

 Done

(3)命令3:搜集一段时间内各个节点的统计信息

[grid@RAC1 ~]$ oclumon dumpnodeview -allnodes -v -s "2018-10-03 10:50:00" -e "2018-10-03 10:57:00" > /tmp/chm.log

 

[grid@RAC1 ~]$ more /tmp/chm.log  --这里面有大量信息,每隔一秒收集的一次信息在各个节点,信息量很大。

----------------------------------------

Node: rac2 Clock: '10-03-18 10.50.00' SerialNo:91

----------------------------------------

SYSTEM:

 

系统的信息,包括CPU的数量,内存使用情况,磁盘基本信息。

#pcpus: 1 #vcpus: 1 cpuht: N chipname: Intel(R) cpu: 90.83;';3:Time=10-03-18 10.50.00, CPU usage on node rac2 (90.83%) is Very High (> 90%). 6 processes are waiting for only 1 CPU

s.' cpuq: 6 physmemfree: 384312 physmemtotal: 1923704 mcache: 621344 swapfree: 4128760 swaptotal: 4128760 ior: 0 iow: 78 ios: 17 swpin: 0 swpout: 0 pgin: 0 pgout: 39 netr: 9.472 n

etw: 15.208 procs: 169 rtprocs: 10 #fds: 12672 #sysfdlimit: 6815744 #disks: 5 #nics: 3  nicErrors: 0

 

使用资源最多的进程包括消耗CPU最多的进程,消耗内存最多的进程,使用文件描述符(FD)最多的进程,线程最多的进程。

TOP CONSUMERS:

topcpu: 'asm_vktm_+ASM2(2844) 2.79' topprivmem: 'ologgerd(2831) 87500' topshm: 'ologgerd(2831) 64704' topfd: 'crsd.bin(2959) 133' topthread: 'console-kit-dae(2083) 64'

 

磁盘的I/O性能信息包括I/O的读写次数,队列长度,等待次数。

DEVICES:

dm-1 ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SWAP

dm-0 ior: 0.000 iow: 39.120 ios: 9 qlen: 0 wait: 2 type: SYS

sdc ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SYS

sdb ior: 0.997 iow: 0.498 ios: 2 qlen: 0 wait: 12 type: SYS

sdb4 ior: 0.997 iow: 0.498 ios: 2 qlen: 0 wait: 12 type: SYS

sdb3 ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SYS

sdb2 ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SYS

sdb1 ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SYS

sda ior: 0.000 iow: 39.120 ios: 4 qlen: 0 wait: 3 type: SYS

sda2 ior: 0.000 iow: 39.120 ios: 4 qlen: 0 wait: 1 type: SYS

sda1 ior: 0.000 iow: 0.000 ios: 0 qlen: 0 wait: 0 type: SYS

 

网卡的统计信息包括网卡的发送和接受性能信息,错误数量等,而且集群公网和私网信息也包含在内。

NICS:

lo netrr: 2.076  netwr: 2.076  neteff: 4.152  nicerrors: 0 pktsin: 3  pktsout: 3  errsin: 0  errsout: 0  indiscarded: 0  outdiscarded: 0  inunicast: 3  innonunicast: 0  type: PUBL

IC

eth0 netrr: 0.278  netwr: 0.163  neteff: 0.441  nicerrors: 0 pktsin: 3  pktsout: 1  errsin: 0  errsout: 0  indiscarded: 0  outdiscarded: 0  inunicast: 3  innonunicast: 0  type: PU

BLIC

eth1 netrr: 7.116  netwr: 12.968  neteff: 20.084  nicerrors: 0 pktsin: 16  pktsout: 18  errsin: 0  errsout: 0  indiscarded: 0  outdiscarded: 0  inunicast: 16  innonunicast: 0  typ

e: PRIVATE latency: 10

 

Oracle_home所在文件系统的空间使用情况

FILESYSTEMS:

mount: / type: rootfs total: 33309492 used: 15064620 available: 16552816 used%: 47 ifree%: 93 [ORACLE_HOME]

 

不同网络协议由于不同原因造成的错误的统计信息

PROTOCOL ERRORS:

IPHdrErr: 0 IPAddrErr: 2 IPUnkProto: 0 IPReasFail: 0 IPFragFail: 0 TCPFailedConn: 17 TCPEstRst: 14 TCPRetraSeg: 0 UDPUnkPort: 256 UDPRcvErr: 0  

 

其他节点信息被输出

----------------------------------------

Node: rac1 Clock: '10-03-18 10.50.02' SerialNo:95

----------------------------------------

 

SYSTEM:

#pcpus: 1 #vcpus: 1 cpuht: N chipname: Intel(R) cpu: 15.99 cpuq: 3 physmemfree: 422628 physmemtotal: 1923704 mcache: 640496 swapfree: 4128760 swaptotal: 4128760 ior: 0 iow: 86 ios

: 20 swpin: 0 swpout: 0 pgin: 0 pgout: 46 netr: 7.946 netw: 9.018 procs: 179 rtprocs: 10 #fds: 12896 #sysfdlimit: 6815744 #disks: 5 #nics: 3  nicErrors: 0

 

TOP CONSUMERS:

topcpu: 'ologgerd(2341) 3.19' topprivmem: 'ologgerd(2341) 93312' topshm: 'ologgerd(2341) 64704' topfd: 'crsd.bin(3036) 151' topthread: 'console-kit-dae(1968) 64'

 

PROCESSES:

 

 

 

 

 

    

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/82907196
chm