CPU0: Temperature above threshold的解决

公司最近又一台机老报这个错误:
 Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU0: Temperature above threshold

Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU1: Temperature above threshold


Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU1: Running in modulated clock mode


Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU0: Running in modulated clock mode

据说是2.6 内核的温度阀值过低造成
屏蔽掉这个提示的办法:
修改/etc/syslog.conf,注释掉 *.emerg 这一行,然后:
/etc/init.d/syslogd restart
P4处理器的thermal monitoring打印的信息.(你的是P4吧?), 这个信息
说明你的CPU核的温度已经超出范围. (你从哪里看到你的温度是正常的?)
注:AMD的CPU也一样(我的机器是AMD双核4000/+)
P4处理器内部的thermal monitoring设置了技术来检测是否P4 core温度是否
超过一个阀值(trip temperature, 厂家定义), 这个温度传感器检测到的温度
若超过的trip temperature(也即是打印信息中的那个threashold阀值), 就产生
一个中断.

linux kernel定义了这个中断句柄, 即打印下面的这些信息.

若不想看到这个信息, 可以重编译内核禁用CONFIG_X86_MCE_P4THERMAL选项,
即make menuconfig中的
[Processor type and features]-> [check for P4 thermal throttling interrupt.]
这个选项去除.

若不想编译内核, 就在启动时增加命令行选项nomce, 但这样做就禁用了
所有P4的Machine Check能力(包括CPU热监视能力)cat /proc/cpuinfo 然后在flags那一项可以看到是否支持MCE(大部分都支持)
. 用root登陆。
2. 编辑启动配置文件:/boot/grub/menu.lst
3. 添加“nomce”启动选项

例如:
title Red Hat Enterprise Linux AS (2.6.9-xx.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-xx.ELsmp ro root=/dev/VolGroup00/LogVol00 rhgb quiet nomce

最后, 不管你怎么不愿意看到这些信息, 都无法否定你的CPU已经过热, 你的
CPU时钟的触发(上升下降研)频率已经被降低, 你的系统性能应该已经降低了.
最治本的方法是再修理你的CPU啊, 风扇啊, 主板啊.
如果BIOS中有相关温度报警的选项可以关掉.

IT时代网(关注微信公众号ITtime2000,定时推送,互动有福利惊喜)所有原创文章版权所有,未经授权,转载必究。
创客100创投基金成立于2015年,直通硅谷,专注于TMT领域早期项目投资。LP均来自政府、互联网IT、传媒知名企业和个人。创客100创投基金对IT、通信、互联网、IP等有着自己独特眼光和丰富的资源。决策快、投资快是创客100基金最显著的特点。

相关文章
中芯国际联手国家队斥500亿投建12吋晶圆制造 什么信号?
中芯国际等被美列黑名单 外交部:坚决反对美方无端打压中国企业
中芯国际遭“断粮”背后:芯片产业链加速国产化
被美国列入“黑名单”?中芯国际:未收到此类官方消息

精彩评论