突然有一个叫做"watchdog/0"的进程占用了我所有的CPU资源。

我有一个全新安装的Ubuntu 12.04,已经运行了大约一周。突然今天我注意到我的电脑每隔5秒就会冻结一次。我重新启动了电脑,但问题仍然存在。我相信是一个名为watchdog/0的进程占用了所有资源。请参考附图。
我该如何停止这个进程?这样下去我几乎无法使用我的电脑。

see CPU hits 100% when idle it is the watchdog process

更新

嗯,我刚刚进行了一次冷启动(关机、拔插电源线,然后开机),看起来问题已经解决了。在查看看门狗的手册后,似乎这个进程可能会在重启期间保持运行?所以更像是软重启?为什么会发生这种情况我不知道。

6个回答

这是它的快速摘要:
看门狗程序每十秒钟向/dev/watchdog写入一次。如果设备在一分钟内打开但没有写入数据,机器将重新启动。当内核构建时带有“软件看门狗”支持(Debian内核中的标准功能)时,可以使用此功能。
虽然它可能看起来很有用,但对于系统的可靠性并不是非常关键,而且它往往会导致不必要的唤醒,从而可能导致电池续航时间缩短。您可以通过在/etc/default/grub中的内核引导参数中添加nmi_watchdog=0来轻松禁用它。

谢谢,听起来是个不错的解决方案。我想知道为什么它会每隔几秒钟就占用所有的CPU使用率? - jeffery_the_wind
很不幸地,对我来说没有起作用。尽管我已经在/etc/defaults/grub中添加了这行代码,但是Watchdog仍然存在。 - twigmac
我认为应该是/etc/default/grub吧? - Mark E. Haase

我的服务器是一台Dell R320,有12个核心,看门狗使CPU负载很重,平均CPU使用率达到68%。
将以下驱动程序添加到黑名单配置文件/etc/modprobe.d/blacklist.conf中解决了我的问题。
blacklist acpi_pad
blacklist mei
blacklist sb_edac
blacklist i7core_edac


此问题的进一步消息:当我将有问题的系统(一台带有16个核心的Dell R720)的内核升级到3.8.0-31.46~precise1时(提示:使用软件包linux-image-generic-lts-raring),问题消失了。 - Paul Gear
实际上,linux-image-current-generic 看起来可能是一个更好的长期选择,因为它不依赖于当前版本的名称。 - Paul Gear

我能够通过降低内核版本来使看门狗安静下来。因此,我不得不使grub菜单可见(如这个问答中所描述的)。
在启动过程中选择一个较早的内核后,看门狗就会保持平静。然而,接着rtkit-deamon变得完全疯狂,消耗与之前看门狗相同数量的CPU资源。

我尝试了@feifan.overflow的答案,但没有起作用,也许我需要重新启动它来应用更改。
下面的命令对我有效。
我在Dell PowerEdge上运行Debian Wheezy(似乎有一些不兼容性)。
rmmod acpi_pad

点击此链接http://osdir.com/ml/ubuntu-bugs/2013-08/msg09026.html后,我执行了以下操作:

1)备份后删除了 /lib/modules/3.13.0-24-generic/kernel/drivers/char/ipmi/ipmi_watchdog.ko

2)注释掉了 /boot/config-3.13.0-24-generic 中包含 "IPMI" 和 "watchdog" 的行

现在问题似乎已经解决。

请注意,您可能需要使用终端中的 uname -r 命令更改正在使用的当前内核版本,而不是使用 3.13.0-24-generic 版本。