Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547908
  • 博文数量: 287
  • 博客积分: 27
  • 博客等级: 民兵
  • 技术积分: 547
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-01 20:20
文章分类

全部博文(287)

文章存档

2015年(1)

2014年(95)

2013年(90)

2012年(101)

分类: 服务器与存储

2013-06-17 22:10:41

     上一次改zfs代码导致系统死机,sysrq尝试过,由于键盘已经不能用了,所以sysrq用不上了,然后又尝试了Kdump工具,结果仍然是失败了,系统依然死机,而且也没看到发生一次内核转储。所以打算采用以下的NMI watchdog的方法检测死机问题,强制内核转储。
      NMI(Not Maskable Interrupt)的意思是:不可屏蔽中断的意思。最开始用在内存校验错误的时候通知CPU,但是最近APIC 也能够定时的产生这种中断。所以操作系统会在一秒钟内发送一定次数的中断,如果NMI监控器没有捕捉到任何中断的时候,就认为这是一次错误,然后就会发生内核崩溃转储。
 为了使用NMI ,首先要内核支持。查看Processor type and features -> Local APIC support on uniprocessors CONFIG_X86_UP_APIC。在默认的Ubuntu系统中这个watchdog是不工作的。
      同时该watchdog不能够和其他的性能监控工具共同使用,因为watchdog需要使用第一个性能监控寄存器。所以perfctr和oprofile都不能够正常使用。
通过
 $ cat /proc/interrupts 可以查看中断的情况
 NMI  0  0 说明watchdog没有工作。
      开启NMI watchdog需要注意nmi_watchdog=panic,N(N=1,2) 当系统当中使用了IO-APIC 设备的时候,需要将N设置成1,如果没有IO-APIC的时候,那么将N设置成2.
如何判断是否安装了IO-APIC呢?
     在proc/interrupts文件中 如果看到很多IO-APIC相关的中断内容,说明使用了IO-APIC设备。
    在我的测试当中发现在Ubuntu10.04的virtualbox虚拟机当中开启nmi_watchdog并没有任何效果,但是在实际的机器中是可以使用的,说明虚拟机还无法模拟出一整套的硬件出来。
阅读(524) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~