一台Dell PowerEdge 2950服务器,目前安装了CentOS 5.4的操作系统,最近一段时间,系统上每隔5分钟就是显示如下信息: Message from syslogd@ at Fri Jan 8 14:19:13 2010
... training kernel: CPU0: Temperature above threshold, cpu clock
throttled Message from syslogd@ at Fri Jan 8 14:19:13 2010 ... training
kernel: CPU2: Temperature above threshold, cpu clock throttled Message from
syslogd@ at Fri Jan 8 14:19:13 2010 ... training kernel: CPU3: Temperature
above threshold, cpu clock throttled Message from syslogd@ at Fri Jan 8
14:24:13 2010 ... training kernel: CPU0: Temperature above threshold, cpu
clock throttled Message from syslogd@ at Fri Jan 8 14:24:13 2010
... training kernel: CPU2: Temperature above threshold, cpu clock
throttled Message from syslogd@ at Fri Jan 8 14:24:13 2010 ... training
kernel: CPU3: Temperature above threshold, cpu clock throttled
记得最初这台服务器最初安装时就出现过此问题,后来似乎换了一个操作系统之后就好了。因为当时没有记录详细日志,所以细节也记清楚了。 经过检查,这台服务器放置的位置在机柜最上方,可能确实存在温度较高的地方。为此将该服务器搬移到另一个机柜中,并且放在机柜下方温度较低的位置,但是仍然发生相同问题。并且网络每隔一段时间也会中断。 为此使用系统上的另一个网卡,eth1,之后网络不再中断,至少可以勉强正常运行服务了。但是因为系统反复显示上面的信息,导致在上面执行操作时看起来很混乱,影响正常操作。 之后也尝试排查硬件方面的问题,打开机箱,发现里面的温度确实不算高。另外还安装了Dell服务器自带光盘中的OpenManage Server
Administrator软件,但是其中显示系统状态一切正常。系统版环境温度(System Board Ambient
Temp)也不过23摄氏度,实在不算高。 在网上找了很多文档,后来发现几个可能相关的文档,这里汇总一下: 首先是 http://www.linuxquestions.org/questions/linux-software-2/temperature-abo...
,但是按照其中方法执行rmmod asus_acpi命令之后,仍然没有阻止该消息再次出现。 然后是 http://www.centospub.com/bbs/viewthread.php?tid=3837
,如下: messages日志提示 CPU0: Temperature above
threshold CPU0: Running in modulated clock
mode 根据资料,这应该是2.6内核的相应阀值过低造成的.特别在编译程序的时候出现的频率很高. 关闭的解决办法如下: vi
/etc/syslog.conf 注释掉 *.emerg 这一行 /etc/init.d/syslog
restart 一切OK
这种方法属于典型的治标不治本,并且可能会影响到其他的严重警告信息显示。 后来又找到一种方法,http://www.linuxsir.org/bbs/thread305266.html
,可能会更好一些,也算是没有办法的办法: 关掉内核中mce即可,或者在引导内核的命令中加入nomce
在此服务器的实际操作命令是修改/boot/grub/menu.lst文件,如下: kernel
/vmlinuz-2.6.18-164.9.1.el5.centos.plus ro root=LABEL=/ nomce initrd
/initrd-2.6.18-164.9.1.el5.centos.plus.img
即在第一行末尾加上nomce指令。但是之前我可以确定CPU没有过热问题。 重新启动之后,世界清静了。 |