Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源(CPU、内存、SWAP、进程、I/O以及网络等)的使用情况。CHM会每秒收集一次数据。
这些系统资源数据对于诊断集群系统的节点重启、Hang、实例驱逐(Eviction)、性能问题等是非常有帮助的。另外,用户可以使用CHM来及早发现一些系统负载高、内存异常等问题,从而避免产生更严重的问题。
CHM会自动安装在下面的软件: 11.2.0.2 及更高版本的 Oracle Grid Infrastructure for Linux (不包括Linux Itanium) 、Solaris (Sparc 64 和 x86-64)
11.2.0.3 及更高版本 Oracle Grid Infrastructure for AIX 、 Windows (不包括Windows Itanium)。
在集群中,可以通过下面的命令查看CHM对应的资源(ora.crf)的状态:
$ crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS Cluster Resources
ora.crf ONLINE ONLINE rac1
CHM主要包括两个服务: 1). System Monitor Service(osysmond):这个服务在所有节点都会运行,osysmond会将每个节点的资源使用情况发送给cluster logger service,后者将会把所有节点的信息都接收并保存到CHM的资料库。
$ ps -ef|grep osysmond
root 7984 1 0 Jun05 ? 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 0 Jun05 ? 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 0 Jun05 ? 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 <====单位为秒
Done
修改路径:
$ 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 use 1073750609 bytes of disk space
CRS-9115-Cluster Health Monitor repository size change completed on all nodes.
Done
获得CHM生成的数据的方法有两种:
1. 一种是使用Grid_home/bin/diagcollection.pl:
1). 首先,确定cluster logger service的主节点:
$ oclumon manage -get master
Master = rac2 2).用root身份在主节点rac2执行下面的命令:
# <Grid_home>/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 -incidenttime 06/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 node2 node3 -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
----------------------------------------
SYSTEM:
#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.008 procs: 178 rtprocs: 10 #fds: 4948 #sysfdlimit: 68157
44 #disks: 4 #nics: 4 nicErrors: 0
TOP CONSUMERS:
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"
PROCESSES:
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)Oracle环境变量NLS_LANG如何针对物理DataGuard设置延时日志应用?相关资讯 Oracle 11gR2
- CentOS 7上安装Oracle 11gR2 全程 (07月25日)
- RHEL 6.5 安装Oracle 11gR2 (06月11日)
- Oracle 11gR2中的自动并行度 (04月18日)
| - CentOS 无图形化安装Oracle 11gr2 (07月07日)
- CentOS7安装Oracle 11gR2 图文详解 (04月23日)
- CentOS6.5下设置Oracle 11gR2 开机 (12/19/2015 11:10:33)
|
本文评论 查看全部评论 (0)