سلام به همه دوستان


اوراکل‌با استفاده از cluster health monitor  به صورت خودکار ارزیابی معیارهای عملکرد سیستم عامل برای تشخیص node evictions، قطع ویروس ها و سایر مسائل مربوط به عملکرد OS مانیتور میکنه  . Cluster Health Monitor جزئیات مربوط به استفاده از حافظه، پردازش ها، و همچنین CPU، I / O و استفاده از شبکه را جمع آوری می کند. در Oracle Grid Infrastructure 12c، Cluster Health Monitor متریک های  OS را هر 5 ثانیه جمع اوری میکنه  و در نسخه های قبل از 12c هر ثانیه متریک ها  را جمع آوری می کرد

نکنه ای که خیلی مهمه بدونیم اینه که این MGMTDB با سرویسی کار میکنه به نام Cluster Robustness Framework (CRF)

System Monitor Service:

در کلاستر بر روی هر نود یک سرویسی قرار دارد به نام system monitor service (osysmond) که به صورت لحظه ای متریک های که تعریف شده رو جمع اوری میکنه و برای سرویس cluster logger service ارسال میکنه 

  Cluster Logger Service:

این سرویس روی روی تمام نود های کلاستر اجرا میشه در صورت افتادن در یک نود در نود دیگه بالا میاد و شروع به سرویس دادن میکنه

در اوراکل ورژن 11 این دیتابیس به صورت یه فایل سیستم بود که در مسیر GRID_HOME/cdata$ بود

اما در نسخه 12  به صورت یک دیتایبس در ASM قرار میگیره در زمان نصب cluster از ما پرسیده میشه که ایا میخواید این MGMTDB رو در دیسک گروه دیگه قرار بدید که یا نه که گاهی پیش میاد در همان دیسک گروه OCR قرار داده میشه  خب وقتی که در این دیسک گروه میزاریم با توجه به رشد این دیتابیس ممکنه دیسک گروه OCR ما به مشکل بخوره 

ما میتونیم این دیتابیس رو انتقال بدیم به دیسک گروه دیگه یا اینکه retention نگهداری اون رو تغییر بدیم

به زبون ساده بخوام بگم یه جورایی مثل OS watcher کار میکنه یعنی ما میتونیم با دستوراتی برای  METRIC های در مورد IO,CPU,MEMORY,NETWORK,FILESYSTEM و هرچیزی که بخواهیم رو میتونیم از این دبیتابیس استخراج بکنیم


دستوری که ما برای نمایش و تغییر config میتونیم استفاده کنیم 

oclumon manage -repos {{changeretentiontime time} | {changerepossize 
memory_size}} | -get {key1 [key2 ...] | alllogger [-details] | mylogger [-details]}

برای کار با این دیتابیس ما از دتسور oclumon استففاده میکنیم برای نمونه دیدن اینکه کدام نود های ما در کلاستر master node است 

[root@node01 ~]# oclumon manage -get master

Master = node01

دیدن ورژن ابزار oclumon

[root@node01 ~]# oclumon version
Cluster Health Monitor (OS), Release 18.0.0.0.0 Version : 18.3.0.0.0

دیدن اینکه سرویس ologger  روی کدام نود در حال سرویس می باشد

[root@node01 ~]# ps aux|grep ologger
root      3379  0.8  3.5 1247568 287772 ?      S<Lsl 13:09   0:55 /grid/product/18.3/grid/bin/ologgerd -M
root      6316  0.0  0.0 112724  2304 pts/0    S+   15:00   0:00 grep --color=auto ologger

[root@node01 trace]# oclumon manage -get alllogger -details
Logger = node01
Nodes = node01,node03,node02

 در نسخه قبل از 12 این دیتنابیس در مسیر GRID_HOME قرار داشت با هم میبینیم

[root@prod01 ~]$ oclumon manage -get reppath

CHM Repository Path = /u01/app/crs11.2.0.4/crf/db/prod01

اما در نسخه 12 به بعد در asm قرار دارد به این صورت میبینیم

[root@node01 ~]# oclumon manage -get reppath
CHM Repository Path = +OCRVOTE/_MGMTDB/81D733FB0C4533F2E0537601000AA3FD/DATAFILE/sysmgmtdata.279.1000208599

در مقاله ای نوشته بودکه به ازای هر نود 700MB فضا احتیاج داره و مثلا اگهما 3 نود داشته باشیم و بخواهیم به مدت 7 روز نگهداری کنیم باید از این فرمول استفاده کنیم

700MB*168*3  مقدار فضا احتیاح داریم برای نگهداری دیتا 3 نود به مدت 1 هفته

 خب برای دیدن retention فعلی به این صورت عمل میکنیم

[root@node01 ~]# oclumon manage -get repsize
CHM Repository Size = 136320 seconds

خب حالا من میخام به مدت 3 روزنگهداری کنم به صورت زیر عمل میکنم  مقدار فضا را تغییر میدم


[root@node01 ~]#  oclumon manage -repos changerepossize 4500
The Cluster Health Monitor repository was successfully resized.The new retention is 299460 seconds.

با به مقدار زمان مورد نیاز تغییر میدم به این صورت

[root@node01 ~]# oclumon manage -repos changeretentiontime 300000
The Cluster Health Monitor repository is too small for the desired retention. Please first resize the repository to 4509 MB
برای دیدن متریک های جمع اوری شده برای نود 1 میتونیم به این صورت عمل کنیم
[root@ndoe01 ~]# oclumon dumpnodeview -n node01

----------------------------------------
Node: node01 Clock: '2019-04-01 15.02.15+0430' SerialNo:1361
----------------------------------------

SYSTEM:
#pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 0.45 cpusystem: 0.38 cpuuser: 0.07 cpunice: 0.00 cpuiowait: 0.00 cpusteal: 0.00 cpuq: 0 physmemfree: 3722496 physmemtotal: 8173036 shmem: 1144032 mcache: 2245400 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 1 iow: 28 ios: 7 swpin: 0 swpout: 0 pgin: 1 pgout: 28 netr: 13.313 netw: 65.138 procs: 374 procsoncpu: 1 #procs_blocked: 0 rtprocs: 22 rtprocsoncpu: N/A #fds: 18848 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.11 loadavg5: 0.13 loadavg15: 0.19 nicErrors: 0

TOP CONSUMERS:
topcpu: 'osysmond.bin(3044) 1.19' topprivmem: 'java(5529) 268680' topshm: 'oracle+ASM1(7168) 113032' topvmem: 'java(1761) 4252624' topfd: 'ocssd.bin(3090) 262' topthread: 'crsd.bin(3533) 50' topio: 'osysmond.bin(3044) 11'

----------------------------------------
Node: node01 Clock: '2019-04-01 15.02.20+0430' SerialNo:1362
----------------------------------------

SYSTEM:
#pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 0.98 cpusystem: 0.73 cpuuser: 0.25 cpunice: 0.00 cpuiowait: 0.00 cpusteal: 0.00 cpuq: 0 physmemfree: 3721240 physmemtotal: 8173036 shmem: 1144032 mcache: 2245464 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 0 iow: 25 ios: 8 swpin: 0 swpout: 0 pgin: 0 pgout: 25 netr: 9.354 netw: 16.464 procs: 374 procsoncpu: 1 #procs_blocked: 0 rtprocs: 22 rtprocsoncpu: N/A #fds: 18912 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.10 loadavg5: 0.13 loadavg15: 0.19 nicErrors: 0

TOP CONSUMERS:
topcpu: 'osysmond.bin(3044) 1.00' topprivmem: 'java(5529) 268680' topshm: 'oracle+ASM1(7168) 113032' topvmem: 'java(1761) 4252624' topfd: 'ocssd.bin(3090) 262' topthread: 'crsd.bin(3533) 50' topio: 'ocssd.bin(3090) 4'

----------------------------------------
Node: node01 Clock: '2019-04-01 15.02.25+0430' SerialNo:1363
----------------------------------------

SYSTEM:
#pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 0.38 cpusystem: 0.30 cpuuser: 0.07 cpunice: 0.00 cpuiowait: 0.00 cpusteal: 0.00 cpuq: 0 physmemfree: 3722396 physmemtotal: 8173036 shmem: 1144032 mcache: 2245468 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 1 iow: 34 ios: 8 swpin: 0 swpout: 0 pgin: 1 pgout: 34 netr: 77.910 netw: 85.389 procs: 374 procsoncpu: 1 #procs_blocked: 0 rtprocs: 22 rtprocsoncpu: N/A #fds: 18880 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.09 loadavg5: 0.13 loadavg15: 0.19 nicErrors: 0

TOP CONSUMERS:
topcpu: 'osysmond.bin(3044) 1.20' topprivmem: 'java(5529) 268680' topshm: 'oracle+ASM1(7168) 113032' topvmem: 'java(1761) 4252624' topfd: 'ocssd.bin(3090) 262' topthread: 'crsd.bin(3533) 50' topio: 'OSWatcher.sh(2613) 37'
سینتکس کلیش به این صورته
oclumon dumpnodeview [-allnodes | -n node1 ...] [-last duration | -s timestamp -e timestamp] [-i interval] [-v | [-system][-process][-procag][-device][-filesystem][-nic][-protoerr][-cpu][-topconsumer]] [-format format type] [-dir directory [-append]]
ما میتونیم زمان بدیم تاریخ بدیم به هر صورتی که نیاز داریم مانند زیر ببینیم
[root@node01 ~]# oclumon dumpnodeview -n node01 -last "14:00:05"
---------------------------------------- Node: node01 Clock: '2019-04-01 13.08.55+0430' SerialNo:1 ---------------------------------------- SYSTEM: #pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 5.12 cpusystem: 3.01 cpuuser: 2.10 cpunice: 0.00 cpuiowait: 0.00 cpusteal: 0.00 cpuq: 0 physmemfree: 6415952 physmemtotal: 8173036 shmem: 9348 mcache: 709804 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 81 iow: 38511 ios: 48 swpin: 0 swpout: 0 pgin: 82 pgout: 38511 netr: 2.093 netw: 2.065 procs: 307 procsoncpu: 1 #procs_blocked: 0 rtprocs: 20 rtprocsoncpu: N/A #fds: 3072 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.63 loadavg5: 0.16 loadavg15: 0.05 nicErrors: 0 TOP CONSUMERS: topcpu: 'osysmond.bin(3044) 53.07' topprivmem: 'java(1761) 100064' topshm: 'cssdagent(3073) 104404' topvmem: 'java(1761) 3987164' topfd: 'ohasd.bin(1683) 227' topthread: 'ohasd.bin(1683) 38' topio: 'ocssd.bin(3090) 59' ---------------------------------------- Node: node01 Clock: '2019-04-01 13.09.00+0430' SerialNo:2 ---------------------------------------- SYSTEM: #pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 1.91 cpusystem: 1.51 cpuuser: 0.40 cpunice: 0.00 cpuiowait: 0.02 cpusteal: 0.00 cpuq: 0 physmemfree: 6343504 physmemtotal: 8173036 shmem: 9344 mcache: 718160 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 168 iow: 1445 ios: 97 swpin: 0 swpout: 0 pgin: 168 pgout: 1445 netr: 2.071 netw: 1.521 procs: 307 procsoncpu: 2 #procs_blocked: 0 rtprocs: 20 rtprocsoncpu: N/A #fds: 3136 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.58 loadavg5: 0.16 loadavg15: 0.05 nicErrors: 0 TOP CONSUMERS: topcpu: 'osysmond.bin(3044) 9.05' topprivmem: 'java(1761) 100064' topshm: 'cssdagent(3073) 104404' topvmem: 'java(1761) 3987164' topfd: 'ohasd.bin(1683) 228' topthread: 'ohasd.bin(1683) 40' topio: 'osysmond.bin(3044) 54' ---------------------------------------- Node: node01 Clock: '2019-04-01 13.09.05+0430' SerialNo:3 ---------------------------------------- SYSTEM: #pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 1.18 cpusystem: 0.98 cpuuser: 0.20 cpunice: 0.00 cpuiowait: 0.05 cpusteal: 0.00 cpuq: 0 physmemfree: 6319172 physmemtotal: 8173036 shmem: 9344 mcache: 718624 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 87 iow: 51 ios: 13 swpin: 0 swpout: 0 pgin: 87 pgout: 51 netr: 5.847 netw: 5.604 procs: 306 procsoncpu: 1 #procs_blocked: 0 rtprocs: 20 rtprocsoncpu: N/A #fds: 3232 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.53 loadavg5: 0.15 loadavg15: 0.05 nicErrors: 0 TOP CONSUMERS: topcpu: 'ocssd.bin(3090) 12.03' topprivmem: 'java(1761) 100064' topshm: 'ocssd.bin(3090) 110560' topvmem: 'java(1761) 3987164' topfd: 'ohasd.bin(1683) 229' topthread: 'ohasd.bin(1683) 40' topio: 'ocssd.bin(3090) 166' ---------------------------------------- Node: node01 Clock: '2019-04-01 13.09.10+0430' SerialNo:4 ---------------------------------------- SYSTEM: #pcpus: 2 #cores: 8 #vcpus: 8 cpuht: N osname: Linux chipname: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz cpuusage: 2.01 cpusystem: 1.41 cpuuser: 0.60 cpunice: 0.00 cpuiowait: 0.02 cpusteal: 0.00 cpuq: 0 physmemfree: 6306912 physmemtotal: 8173036 shmem: 9344 mcache: 718748 swapfree: 8388604 swaptotal: 8388604 hugepagetotal: 0 hugepagefree: 0 hugepagesize: 2048 ior: 137 iow: 33 ios: 24 swpin: 0 swpout: 0 pgin: 137 pgout: 33 netr: 3.151 netw: 3.187 procs: 306 procsoncpu: 1 #procs_blocked: 0 rtprocs: 20 rtprocsoncpu: N/A #fds: 3232 #sysfdlimit: 6815744 #disks: 4 #nics: 3 #nfs: N/A loadavg1: 0.57 loadavg5: 0.17 loadavg15: 0.06 nicErrors: 0 TOP CONSUMERS: topcpu: 'ocssd.bin(3090) 2.19' topprivmem: 'java(1761) 100236' topshm: 'ocssd.bin(3090) 110560' topvmem: 'java(1761) 3987164' topfd: 'ohasd.bin(1683) 229' topthread: 'ohasd.bin(1683) 40' topio: 'OSWatcher.sh(2613) 101' ---------------------------------------- Node: node01 Clock: '2019-04-01 13.09.15+0430' SerialNo:5 ----------------------------------------
یا تاریخ بدیم  حتی میتونیم بگیم فقط وضعیت cpu رو نشون بده یا وضعیت رم یا شبکه و...

به هر حال خوبه مواقعی که os watcher ور نداریم از این استفاده کنیم .


موفق باشید