Linux系統下oprocd和hangcheck-timer的作用
一、hangcheck-timer
從oracle9.2.0.2.0開始到最近的11.1,Oracle,在linux下建立RAC時推薦使用一個I/O fencing模組,叫做hangcheck-timer,此模組作用是用來監測節點Linux kernel是否hang住,如果長時間hang住的話Oracle認為對RAC節點穩定性存在影響,就會重啟此節點. 此模組有三個引數hangcheck_tick和hangcheck_margin、hangcheck_reboot,如果kernel在hangcheck-tick和hangcheck-margin時間總和內無響應的話,hangcheck-timer根據hangcheck_reboot的值確定是否重啟系統.hangcheck_reboot大於等於1,重啟;0,不重啟。在2.6的核心中,預設值是0。那麼"Hangcheck: hangcheck value past margin!"告警資訊,表示由於hangcheck-reboot值為1。系統應該重啟但沒有重啟。
二、oprocd
linux平臺上的Oracle Clusterware 10.2.0.4和以後版本引入了一個新的Oracle Clusterware Process Monitor Daemon (OPROCD)程式來監控系統狀態和叢集中的每個節點的健康狀態,就象已經在不使用第三方的cluster軟體的UNIX系統中提供的那樣,下面來看看OPROCD到底是何方神聖。
OPROCD在linux平臺上的10.2.0.4版本中和hangcheck-timer一起執行,它和hangcheck-timer模組沒有聯絡和依賴關係,它由init.ccsd程式產生出來並用root使用者執行。OPROCD程式被鎖定在記憶體中來監控叢集中的每個它自己執行的節點,來檢測機器上的硬體或者驅動的freezes,並且提供I/O的fencing功能(這和SCSI提供的中斷的fencing功能不同)。如果一個機器被凍結了足夠長的時間後,它被會叢集驅逐出節點,它自己需要強制重啟自己來阻止叢集從失敗的節點上的鎖資源被重新組織後,失敗的節點仍然訪問共享的資料檔案上的有疑問的I/O操作。為了提供這樣的功能,OPROCD執行檢查,然後停止執行(休眠),然後如果在期望的時間內不能被喚醒,OPROCD將重啟本機的節點。
注意:OPROCD在第三方實現的叢集環境中是不存在的,因為在LINUX平臺下沒有透過驗證的第三方的叢集解決方案,所以linux平臺下的0.2.0.4版本中OPROCD將總是會存在的。
OPROCD啟動的時候有兩個引數:
-t : 超時時間,預設1000,單位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000)
-m : 重啟前可接受的延遲,單位毫秒,預設500 (OPROCD_DEFAULT_MARGIN=500)
推薦設定DIAGWAIT為13來增加重啟前可接受的時間來把更多的日誌資訊寫入磁碟。
預設的話,-m的間隔為500:
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f
設定了DIAGWAIT為13會預設增加-m的時間,下面顯示設定DIAGWAIT為13後,-m引數值為10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f
三、兩者之間的聯絡
OPROCD和hangcheck-timer在linux平臺下是同時執行並提供不同的檢測機制的,當他們導致節點重啟的話,在系統日誌中記錄的資訊是不同的:
oprocd導致的重啟會記錄"SysRq: resetting"
Hangcheck-timer導致的重啟會記錄"Hangcheck: hangcheck is restarting the machine"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-1065725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oprocd & Hangcheck-timerGC
- Linux系統下各個目錄的作用詳解!Linux
- OA系統的功能和作用
- 【系統】Linux下 zip 和 unzip的用法Linux
- UNIX系統下各檔案的作用(轉)
- Linux系統中o和a代表什麼?有何作用?Linux
- 監控Linux系統下的host和serviceLinux
- Linux系統中的list命令有何作用?Linux
- LINUX平臺下的10.2.0.4版本的CLUSTERWARE引入的變化-關於OPROCD程式Linux
- CRM系統銷售預測的概念和作用
- linux系統下看所需要的系統資訊Linux
- Linux系統下CUDA和cuDNN環境配置LinuxDNN
- Linux命令列作用和意義是什麼?學習linux作業系統Linux命令列作業系統
- Linux下檔案系統的比較和選擇(轉)Linux
- Windows和Linux系統下的Conda環境遷移WindowsLinux
- linux系統下poll和epoll核心原始碼剖析Linux原始碼
- linux下掛載NTFS和FAT檔案系統Linux
- Linux系統下的HDD Rootkit分析Linux
- 作業系統 Linux下的程式作業系統Linux
- 如何配置Linux系統下的yumLinux
- 【linux下各個目錄的作用】Linux
- Linux系統/etc/security/limits.conf檔案的作用LinuxMIT
- 關於UNIX和Linux系統下SUID、SGID的解析LinuxUI
- Linux 系統管理(下)(轉)Linux
- Zoho CRM系統的主要功能和重要作用
- VNC,Linux系統下如何安裝和連線VNC!VNCLinux
- OPROCD程式問題(ZT)
- Linux系統下強大的ethtool命令Linux
- Linux 系統下 init 程式的前世今生Linux
- Linux 下系統呼叫的三種方法Linux
- Linux下的檔案系統結構Linux
- linux系統下的使用者管理Linux
- Linux系統下MMS協議的播放Linux協議
- linux 下檔案系統的劃分Linux
- 最老的Linux 系統《下載》(轉)Linux
- linux和windows系統的區別LinuxWindows
- linux系統中的Cache和BufferLinux
- CRM客戶管理系統的作用和四大優勢