ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE 9I, 10G, AND 11G RAC ON LINUX所需要的HANGCHECK-TIMER MODULE介绍

ORACLE 9I, 10G, AND 11G RAC ON LINUX所需要的HANGCHECK-TIMER MODULE介绍

原创 Linux操作系统 作者:yanyp 时间:2009-04-17 11:31:48 0 删除 编辑
http://zhang41082.itpub.net/post/7167/467614

此文档摘自METALINK:726833.1,所适用的ORACLE版本为:Oracle Server - Enterprise Edition - Version: 9.2.0.8 to 11.1.0.7

从9.2.0.2版本开始,ORACLE RAC环境需要使用一个新的I/O fencing模块,叫做hangcheck-timer模块。这个模块用来代替Watchdog模块,提供类似的fencing功能。Hangcheck-timer模块是标准的linux2.4以上的内核中的一个子功能被发布。

Hangcheck-timer应该在系统启动的时候被加载, 并对于能够影响RAC节点稳定性的长时间的系统操作HANG进行内核监控。它运行在内核级别并使用Time Stamp Counter(TSC)来捕捉调度的延迟和节点HANG。这是通过设置一个timer,然后检查这个timer的fires情况来判断是否延迟是否超过了误差的幅度。如果这个周期超过了允许的时间(也就是hangcheck_tick+hangcheck_margin秒),机器将会被重启,如果是CPU资源不足的时候,Hangcheck-timer将不会导致重启。


Hangcheck-timer有三个配置参数:
hangcheck_tick:定义了hangcheck-timer检查节点是否hang的频率,单位是秒,缺省是60秒
hangcheck_margin:定义期望的和真正的scheduling之间允许的误差,单位是秒,缺省值是180秒
hangcheck_reboot:定义了如果内核在hangcheck-tick和hangcheck-margin相加的时间内响应失败的话,hangcheck-timer是否重启节点。如果hangcheck_reboot的值大于等于1,hangcheck-timer模块将会重启系统;如果设置为0,则即使系统hang的时候hangcheck-timer也不会重启系统。在linux 2.4的内核中,这个缺省值是1;在2.6的内核中,缺省值是0。

所有的hangcheck-timer的参数的缺省值必须在加载内核模块的时候被显式的覆盖,不同的oracle版本可以按照下面来设置:
9i: 假如"oracm misscount"的缺省设置是220秒,则hangcheck_tick=30 hangcheck_margin=180 hangcheck_reboot=1
10g/11g: 假如"CSS misscount"的设置是30或者60秒,则hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1

注意:你必须设置集群的misscount值大于hangcheck_tick + hangcheck_margin之和

可以使用下面方法来检查hangcheck是否在运行:
# /sbin/lsmod | grep hangcheck
hangcheck-timer 2672 0

在oracle linux、红帽linux4/5或者SUSE linux9/10中,hangcheck-timer模块使用modprobe命令来进行加载:
# modprobe hangcheck-timer hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1

为了使得在启动的时候就自动加载,可以把上面的命令添加到/etc/rc.d/rc.local或者/etc/init.d/boot.local中,这个根据不同的发行版来决定。

当检测到失败的时候,hangcheck-timer会在系统日志中记录失败信息:
重启时会记录"Hangcheck: hangcheck is restarting the machine"信息到/var/log/messages
如果你看到/var/log/messages中有"Hangcheck: hangcheck value past margin!"消息,表示系统需要重启但是没有重启,因为hangcheck-reboot参数没有设置为1。


Known Issues

* Bug:6125546 which can prevent hangcheck-timer from rebooting in RHEL4 (fixed in 2.6.9.56 or RHEL4.6)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/230160/viewspace-590747/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-12

  • 博文量
    139
  • 访问量
    171864