天天看點

Oracle Cluster Health Monitor(CHM)簡介

 Oracle Cluster Health Monitor(CHM)簡介 

Cluster Health Monitor(以下簡稱CHM)是一個Oracle提供的工具,用來自動收集作業系統的資源(CPU、記憶體、SWAP、程序、I/O以及網絡等)的使用情況。CHM會每秒收集一次資料。

   這些系統資源資料對于診斷叢集系統的節點重新開機、Hang、執行個體驅逐(Eviction)、性能問題等是非常有幫助的。另外,使用者可以使用CHM來及早發現一些系統負載高、記憶體異常等問題,進而避免産生更嚴重的問題。

CHM會自動安裝在下面的軟體:

11.2.0.2 及更高版本的 OracleGrid Infrastructure for Linux (不包括Linux Itanium) 、Solaris (Sparc 64 和 x86-64)

 11.2.0.3 及更高版本 OracleGrid Infrastructure for AIX 、 Windows (不包括Windows Itanium)。

    在叢集中,可以通過下面的指令檢視CHM對應的資源(ora.crf)的狀态:

$ crsctl stat res -t -init

[root@testrac2 bin]# ./crsctl stat resora.crf -init

NAME=ora.crf

TYPE=ora.crf.type

TARGET=ONLINE

STATE=ONLINE on testrac2

CHM主要包括兩個服務:

    1).System Monitor Service(osysmond):這個服務在所有節點都會運作,osysmond會将每個節點的資源使用情況發送給cluster logger service,後者将會把所有節點的資訊都接收并儲存到CHM的資料庫。

      $ps -ef|grep osysmond

       root      7984     1  0Jun05 ?        01:16:14/u01/app/11.2.0/grid/bin/osysmond.bin

    2).Cluster Logger Service(ologgerd):在一個叢集中的,ologgerd 會有一個主機點(master),還有一個備節點(standby)。當ologgerd在目前的節點遇到問題無法啟動後,它會在備用節點啟用。

     主節點:

     $ ps -ef|grep ologgerd

       root      8257     1  0Jun05 ?        00:38:26/u01/app/11.2.0/grid/bin/ologgerd -M -d      /u01/app/11.2.0/grid/crf/db/rac2

     備節點:

      $ ps -ef|grep ologgerd

       root      8353     1  0Jun05 ?        00:18:47/u01/app/11.2.0/grid/bin/ologgerd -m rac2 -r -d

/u01/app/11.2.0/grid/crf/db/rac1

CHM Repository:用于存放收集到資料,預設情況下,會存在于Grid Infrastructure home 下 ,需要1 GB 的磁盤空間,每個節點大約每天會占用0.5GB的空間。您可以使用OCLUMON來調整它的存放路徑以及允許的空間大小(最多隻能儲存3天的資料)。

下面的指令用來檢視它目前設定:

     $ oclumon manage -get reppath

       CHM Repository Path =/u01/app/11.2.0/grid/crf/db/rac2

       Done

     $ oclumon manage -get repsize

       CHM Repository Size = 68082 <====機關為秒

修改設定

 修改路徑:

$ oclumon manage -repos reploc/shared/oracle/chm

     修改大小:

$ oclumon manage -repos resize 68083 <==在3600(小時) 到 259200(3天)之間

      rac1 --> retention check successful

      New retention is 68083 and will use1073750609 bytes of disk space

      CRS-9115-Cluster Health Monitor repositorysize change completed on all nodes.

      Done

     1. 一種是使用Grid_home/bin/diagcollection.pl:

        1). 首先,确定clusterlogger service的主節點:

         $ oclumon manage -getmaster

         Master = rac2

        2).用root身份在主節點rac2執行下面的指令:

         # /bin/diagcollection.pl-collect -chmos -incidenttime inc_time -incidentduration duration

         inc_time是指從什麼時間開始獲得資料,格式為MM/DD/YYYY24HH:MM:SS, duration指的是獲得開始時間後多長時間的資料。

         比如:#diagcollection.pl-collect -crshome /u01/app/11.2.0/grid-chmoshome  /u01/app/11.2.0/grid -chmos -incidenttime06/15/201215:30:00 -incidentduration 00:05

       3).運作這個指令之後,CHM的資料會生成在檔案chmosData_rac2_20120615_1537.tar.gz。

    2. 另外一種獲得CHM生成的資料的方法為oclumon:

 $oclumon dumpnodeview [[-allnodes] | [-n node1 node2] [-last"duration"] | [-s "time_stamp" -e "time_stamp"][-v] [-warning]] [-h]

        -s表示開始時間,-e表示結束時間

       $ oclumon dumpnodeview -allnodes -v-s "2012-06-15 07:40:00" -e "2012-06-15 07:57:00" >/tmp/chm1.txt

       $ oclumon dumpnodeview -n node1 node2node3 -last "12:00:00" >/tmp/chm1.txt

       $ oclumon dumpnodeview -allnodes-last "00:15:00" >/tmp/chm1.txt

下面是/tmp/chm1.txt中的部分内容:

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

Node: rac1 Clock: '06-15-12 07.40.01' SerialNo:168880

SYSTEM:

#cpus: 1 cpu: 17.96 cpuq: 5 physmemfree: 32240 physmemtotal: 2065856 mcache:1064024 swapfree: 3988376 swaptotal: 4192956 ior: 57 io

w: 59 ios: 10 swpin: 0 swpout: 0 pgin: 57 pgout: 59 netr: 65.767 netw: 34.871 procs:183 rtprocs: 10 #fds: 4902 #sysfdlimit: 6815744

 #disks: 4 #nics: 3  nicErrors: 0

TOP CONSUMERS:

topcpu: 'mrtg(32385) 64.70' topprivmem: 'ologgerd(8353) 84068' topshm:'oracle(8760) 329452' topfd: 'ohasd.bin(6627) 720' topthread:

 'crsd.bin(8235) 44'

PROCESSES:

name: 'mrtg' pid: 32385 #procfdlimit: 65536 cpuusage: 64.70 privmem: 1160 shm:1584 #fd: 5 #threads: 1 priority: 20 nice: 0

name: 'oracle' pid: 32381 #procfdlimit: 65536 cpuusage: 0.29 privmem: 1456 shm:12444 #fd: 32 #threads: 1 priority: 15 nice: 0

...

name: 'oracle' pid: 8756 #procfdlimit: 65536 cpuusage: 0.0 privmem: 2892 shm:24356 #fd: 47 #threads: 1 priority: 16 nice: 0

Node: rac2 Clock: '06-15-12 07.40.02' SerialNo:168878

#cpus: 1 cpu: 40.72 cpuq: 8 physmemfree: 34072 physmemtotal: 2065856 mcache:1005636 swapfree: 3991808 swaptotal: 4192956 ior: 54 io

w: 104 ios: 11 swpin: 0 swpout: 0 pgin: 54 pgout: 104 netr: 77.817 netw: 33.008procs: 178 rtprocs: 10 #fds: 4948 #sysfdlimit: 68157

44 #disks: 4 #nics: 4  nicErrors: 0

topcpu: 'orarootagent.bi(8490) 1.59' topprivmem: 'ologgerd(8257) 83108' topshm:'oracle(8873) 324868' topfd: 'ohasd.bin(6744) 720' t

opthread: 'crsd.bin(8362) 47'

name: 'oracle' pid: 9040 #procfdlimit: 65536 cpuusage: 0.19 privmem: 6040 shm:121712 #fd: 33 #threads: 1 priority: 16 nice: 0

  關于CHM的更多解釋,請參考Oracle官方文檔:

  http://docs.oracle.com/cd/E11882_01/rac.112/e16794/troubleshoot.htm#CWADD92242

  Oracle Clusterware Administration and Deployment Guide

  11g Release 2 (11.2)

  Part Number E16794-17

  或者 My Oracle Support文檔:

  Cluster Health Monitor (CHM) FAQ (Doc ID 1328466.1)