使用gentoo的,和重新编译过内核的Linux朋友可能会遇到这样的问题,当你正在编译某个大型软件
(比如gcc),CPU满负荷运转半个小时左右,Linux忽然会提示类似如下的信息:

Critical temperature reached (100 C), shutting down

然后就开始进入init脚本的关机流程。于是,稍微大一些的软件就无法编译了。
我也遇到了这个问题,并被困扰了一个半月,在绕了一些圈子以后,终于让我找到了问题所在和解决的。
首先,这个问题和内核的acpi模块以及acpid守护进程无关,和processer.ko、fan.ko、thermal.ko、button.ko无关,和/proc/acpi/目录下的文件无关,和/sys/devices/system/cpu/目录下的文件无关。
这种过热关机的问题只和

Power Management Options --->
CPU Frequency Scaling --->

有关,CPU Frequency Scaling是kernel中对CPU自动降频功能的支持。

[*] CPU Frequency scaling [ ] Enable CPUfreq debugging <*> CPU frequency translation statistics [*] CPU frequency translation statistics details Default CPUFreq governor (ondemand) ---> -*- 'performance' governor <*> 'powersave' governor <*> 'userspace' governor for userspace frequency scaling <*> 'ondemand' cpufreq policy governor <*> 'conservative' cpufreq governor *** CPUFreq processor drivers *** <*> ACPI Processor P-States driver AMD Mobile K6-2/K6-3 PowerNow! AMD Mobile Athlon/Duron PowerNow! AMD Opteron/Athlon64 PowerNow! Cyrix MediaGX/NatSemi Geode Suspend Modulation Intel Enhanced SpeedStep (deprecated) -*- Built-in tables for Banias CPUs Intel Speedstep on ICH-M chipsets (ioport interface)Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)Intel Pentium 4 clock modulation nVidia nForce2 FSB changing Transmeta LongRun


内核中的CPU Frequency Scaling功能基本上可以分为三个部分:基本选项,governor(策略)模块和驱动模块。
开头的四行是四项基本选项,
[*] CPU Frequency scaling表示启用CPU降频功能
[ ] Enable CPUfreq debugging 表示启用该功能的debug功能
<*> CPU frequency translation statistics表示启用通过sysfs查看CPU降频状态的功能
[*] CPU frequency translation statistics details表示启动上面那个功能的详细信息;
“Default CPUFreq governor (ondemand) --->”这一行及其以下的部分是governor(策略)模块,目前共有'performance' 'powersave''userspace''ondemand''conservative'五个降频策略模块,其中:
'performance':高性能,就是CPU一直坚持使用最高频率工作,
'powersave':节能,CPU一直坚持使用最低频率工作,
'userspace':用户空间程序,CPU的频率根据用户空间的程序,通过/sys文件系统进行设置,
'ondemand':按需动态,CPU频率根据实际运行情况动态调整,
'conservative':保守动态,CPU频率根据实际运行情况,保守的动态调整;
*** CPUFreq processor drivers ***以下的部分是针对这种CPU的驱动模块。我的Intel T2330使用的是ACPI Processor P-States driver。
以上是kernel对于CPU降频功能的支持。前面的列表可以作为大家配置CPU Frequency Scaling时的参考,对于四项基本选项除debugging按需y之,其余的坚决y之;五个governor建议y之,至少也要m之;驱动模块,系统在用的CPU对应的驱动模块y之或m之,其余的m之或n之。
插曲:内核配置的YNM
Linux的内核配置包含很多选项。对于每一个配置选项,用户可以回答y、m或n。其中y表示将相应特性的支持或设备驱动程序编译进内 核;m表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;n表示内核不编译包含相应特性或驱动程序。
可以参看这篇文章 如何编译Linux的内核
如果编译内核的时候没有启用CPU自动降频的支持、或者没有编译需要的驱动模块和governor(策略)模块、或者系统启动的时候没有加载合适的降频驱动模块和governor(策略)模块,或者没有设置合适的当前governor(策略)(比如设置的是performance governor),如果硬件的降温设施不够强大,CPU便会逐渐过热,当达到一个阈值时系统为了自我保护,开始自动关机。这便是困扰了我一个半月的自动关机的原因。
了解了原理,解决办法就很简单了。正确配置内核中的CPU Frequency Scaling功能,并配置cpu-frequtils软件设置合适的governor,就可以解决问题了。

#cpufreq-set -g ondemand -c 0

更多关于计算机电源管理和CPU降频的消息,可参考gentoo的电源管理指导

==============2014年9月30日增加===========================

想不到这帖子关注的人不少。需要说明一下,通过将CPUfreq的governor设置成ondemand来避免CPU达到100 C自动关机的方法,只是针对成品系统已经存在的散热不良的设计,避免系统停机的“无可奈何”的方法。避免CPU达到100 C自动关机的根本解决途径是增强散热系统的能力,而不是CPUfreq。同样把CPUfreq的governor设置成performance就是很有效的测试散热系统设计是否达标的手段,优秀的系统会稳定在60 C,即使达到100 C的时候也会增大fan的转速,使温度平衡稳定,不会导致关机。很多旗舰本、铝镁商务本都满足这样的设计准线。

如何解决CPU过热100度自动关机相关推荐

  1. 服务器过热自动关机重启,CPU过热电脑会自动关机吗

    CPU过热电脑会自动关机吗 突然自动关机最有可能的是硬件毛病,最常见的就是CPU过热,其它主要部件过热也可能导致自动关机,再者就是主板或电源有故障.而由病毒引起自动关机的很少见的. 检查方法为:开机3 ...

  2. windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题

    windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 参考文章: (1)windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 (2)https: ...

  3. 织梦mysql占用资源_解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记

    早上帮朋友一台服务器解决了Mysql cpu 占用 100%的问题.稍整理了一下: 朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysq ...

  4. php mysql cpu100_MySQL服务器进程CPU占用100%的解决方法

    早上帮朋友一台服务器解决了 Mysql cpu 占用 100% 的问题.稍整理了一下,将经验记录在这篇文章里. 朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 My ...

  5. linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...

    如果你在Deepin Linux.Debian.Ubuntu系统中遇到kworker进程占用CPU达到100%,可以用以下解决方法解决问题,本文主要内容为问题起因.microcode介绍.解决方法及总 ...

  6. mysql-nt.exe w3wp.exe cpu 100%_w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

    对于IIS管理员来说,经常会碰到Web服务器CPU占用100%的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析w3wp.exe(IIS )占用CPU 100%的一些原因 和解决方案,希望能 ...

  7. php mysql cpu100_解决mysql占用cpu资源100%的问题_MySQL

    bitsCN.com 解决mysql占用cpu资源100%的问题 一个Win2003服务器,以前就跑了一个tomcat实例也没用nginx做前端代理,这个tomcat里面带了不少网站,但是访问量并不是 ...

  8. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结

    朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt.exe) CPU 占用率总为 100% 高居不下.此主机有10个左右的 ...

  9. 解决MySQL CPU占用100%的经验总结 转

    解决MySQL CPU占用100%的经验总结 朋友主机 (Windows 2003 + IIS + PHP + MySQL) 近来 MySQL 服务进程 (MySQLd-nt.exe) CPU 占用率 ...

  10. [组图教程]:8大方法!解决CPU资源占用100%[ZT]

    第1页:CPU资源占用100%:看驱动,看启动,看病毒      相信你的一定遇到过电脑动弹不得的时候,或许是只能眼看鼠标滑动而不能进行任何操作的时候,很多人都会经常遇到这样的问题:CPU占用率100 ...

最新文章

  1. fwrite视频写入帧率测试(不用测了。。)
  2. 英语语法---形容词短语详解
  3. 如何赋值hook定义的变量
  4. 命名空间函数用法及例子
  5. 配置centos防火墙(iptables)开放80端口
  6. 21个js 技巧收藏
  7. 架构师之路:星环大数据架构师的培训心得
  8. 课时8-1:adams建约束副----齿轮约束
  9. 2020计算机毕设选题推荐可视化方向,前端方向本科应届生有什么毕设选题推荐?...
  10. MOTO me525 DEFY 2.2 刷机全程详细指导
  11. 知名互联网公司系统架构图
  12. 欧拉恒等式:数学史上的真正完美公式!
  13. python花猫_涨见识了,在终端执行 Python 代码的 6 种方式!
  14. 推荐一些增长见闻的优质公众号
  15. python中key=lambda_排序后的语法(key=lambda:…)
  16. 关于av_freep
  17. 大神自述|7岁接触建模的大神建模师,分享建模经验与技巧
  18. 唤起公众号关注页面内部_外部H5页面内实现一键唤起微信添加好友OR关注公众号...
  19. c语言编程银行利率计算器,c语言写用户从键盘上输入银行利率,本金,存...
  20. 微信公众号的二次开发(二 自定义菜单的创建)

热门文章

  1. ROS使用节点句柄nh(“~“)和nh的区别:发布的话题的命名空间不同
  2. Matlab学习笔记:网格线的粗细调整
  3. 2016 年全国房价会呈什么趋势?
  4. imp命令导入指定表_oracle 导入imp 命令
  5. python体测成绩数据分析_Python+Excel数据分析实战:军事体能考核成绩评定(二)基本框架和年龄计算...
  6. 转录组测序技术及结果解读(一)——测序样品设置及选择
  7. 如何在springboot中返回jsp页面
  8. python--数据导入--read_excel
  9. Centos 操作系统常用log日志
  10. 微信支付-JASPI:准备工作[微信公众平台配置,微信商户平台配置]