Linux 监控工具,让你的硬件保持低温

尚无读者喜欢这篇文章。
Iceburg with a cycle symbol

Opensource.com

你是否注意到灯泡(尤其是白炽灯泡)似乎总是在打开瞬间烧坏?或者像家庭影院系统或电视这样的电子元件昨天还好好的,但今天当你打开它们时却坏了?我也遇到过这种情况。

你有没有想过这是为什么?

热应力

影响电子设备寿命的因素有很多。最普遍的故障来源之一是热。事实上,大多数电子设备在执行其分配的任务时产生的热量,正是缩短其电子寿命的热量。

在个人电脑时代初期,我在 Boca Raton 的 IBM 工作,我所在的团队负责维护各种类型的计算机和其他硬件。Boca Raton 实验室的任务之一是确保硬件极少发生故障,并且在发生故障时易于维修。在那里工作期间,我了解到了一些关于热对计算机寿命影响的有趣事情。

让我们回到灯泡,因为它是一个容易看到,但不太常见的例子。

每次打开灯泡时,电流都会涌入灯丝,并使其温度从室温迅速升高到大约 340° 华氏度(温度取决于灯泡的瓦数)。这会通过灯丝金属的汽化以及仅仅由加热引起的金属快速膨胀而产生热应力。当灯泡关闭时,热应力会再次发生——尽管程度较轻——在冷却阶段,灯丝会收缩。灯泡开关次数越多,这种应力的累积效应就越大。

热应力的主要影响是,灯丝的一些小部分——通常是由于微小的制造差异——往往比其他部分更热,导致这些点的金属蒸发得更快。这使得灯丝在该点变得更脆弱,并且在随后的电源开启周期中更容易快速过热。最终,当灯泡打开时,最后一点金属蒸发,灯丝在耀眼的光芒中死亡。

计算机中的电路与灯泡中的灯丝非常相似。反复的加热和冷却循环会损坏计算机内部的电子元件,就像灯泡的灯丝随着时间的推移被损坏一样。

冷却至关重要

保持计算机冷却对于确保其长寿命至关重要。大型数据中心花费大量能源来保持其中的计算机冷却。在不深入细节的情况下,设计人员需要确保将冷空气流引导到数据中心,特别是引导到计算机机架中,以保持它们冷却。如果能将它们保持在相当恒定的温度下,那就更好了。

即使在家庭或办公室环境中,适当的冷却是必不可少的。事实上,在这些环境中,它甚至更加重要,因为环境温度要高得多(这主要是为了人类的舒适)。

温度监控

可以测量数据中心内以及各个机架内许多不同点的温度。但是,如何测量计算机内部的温度呢?

幸运的是,现代计算机在各种组件中内置了许多传感器,以实现对温度、风扇速度和电压的监控。如果您曾经看过计算机处于 BIOS 配置模式时可用的一些数据,您可以看到许多这些值。但这并不能显示计算机在各种负载下的真实世界情况中内部发生的事情。

Linux 有一些可用的软件工具,允许系统管理员监控这些内部传感器。这些工具都基于 lm_sensorsSmarthddtemp 库模块,这些模块在所有基于 Red Hat 的发行版和大多数其他发行版上都可用。

最简单的工具是 sensors 命令。在使用 sensors 命令之前,使用 sensors-detect 命令来检测主机系统上安装的尽可能多的传感器。然后,sensors 命令生成包括主板和 CPU 温度、主板上各个点的电压以及风扇速度的输出。sensors 命令还显示被认为是正常、高和临界的温度范围。

hddtemp 命令显示指定硬盘驱动器的温度。smartctl 命令显示硬盘驱动器的当前温度、指示硬盘驱动器潜在故障的各种测量值,以及在某些情况下,硬盘驱动器温度的 ASCII 文本历史记录图。最后这个输出在某些类型的问题中可能特别有帮助。

当与适当的库模块一起使用时,glances 命令可以显示硬盘驱动器温度以及 sensors 命令提供的所有相同温度。glances 是一个类似于 top 的命令,它提供有关正在运行的系统的许多信息,包括 CPU 和内存使用情况、有关网络设备和硬盘驱动器分区的 I/O 信息,以及使用最多各种系统资源的进程列表。

还有许多优秀的图形监控工具可用于监控计算机的热状态。我喜欢用于桌面的 GKrellM。还有很多其他工具可供您选择。

我建议安装这些工具并监控每个新安装系统上的输出。这样,您可以了解计算机的正常温度是多少。使用像 glances 这样的工具,您可以实时监控温度,并了解各种类型的负载增加如何影响这些温度。其他工具可用于对您的计算机进行快照查看。

采取行动

针对高温采取措施非常简单。通常是更换有缺陷的风扇;安装更新、更大容量的风扇;以及降低环境温度。

在构建新计算机或翻新旧计算机时,我总是安装额外的机箱风扇,或者在可能的情况下用更大的风扇替换现有的风扇。最大气流对于有效冷却至关重要。在某些极端环境中,例如对于游戏玩家,液体冷却可以取代空气冷却;我们大多数人不需要达到那种程度。

我也通常用大容量的 CPU 散热单元替换标准的 CPU 散热单元。至少,我会更换 CPU 和散热器之间的导热硅脂。我发现工厂或电脑商店提供的导热硅脂并不总是均匀分布在 CPU 表面,这可能会导致 CPU 的某些区域散热不足。

我有一个大房间在我和妻子办公室上面的车库上方。我总共有 10 台正在运行的计算机、两台激光打印机(大部分时间处于睡眠模式)、多个外部硬盘驱动器机箱(每个机箱有一到四个驱动器)和六个不间断电源 (UPS)。这些设备都会产生大量的热量。

多年来,我不得不使用几个窗式空调装置来保持我们家庭办公室的合理温度。几年前,我们的 HVAC 装置坏了,安装分区系统变得有意义,这样楼上的办公室空间就可以直接冷却,剩余的冷空气比楼下的任何热空气都稠密,会向下流动到较低的楼层。这对我很有效,并使我和计算机都保持在舒适的温度。

也可以测试您的冷却解决方案的有效性。有很多选择,我喜欢的一种选择还可以执行有用的工作。

我在我的许多计算机上安装了 BOINC (伯克利开放式网络计算基础设施),并且我运行 Seti@Home,以便用我拥有的所有原本浪费的 CPU 周期做一些有意义的事情。它也为我的冷却解决方案提供了一个很好的测试。还有一些商业上可用的测试套件,允许对内存、CPU 和 I/O 设备进行压力测试,这可以用作测试冷却解决方案的附带好处。

所以保持冷静,继续计算吧!

标签
David Both
David Both 是开源软件和 GNU/Linux 的倡导者、培训师、作家和演讲者。他自 1996 年以来一直从事 Linux 和开源软件工作,自 1969 年以来一直从事计算机工作。他是“系统管理员的 Linux 哲学”的坚定拥护者和传播者。

8 条评论

最近,我的笔记本电脑(品牌已省略)出现过热问题。从 Youtube 播放 1080p(全高清)视频使这台机器跳到 86°C(186°F,用“sensors”命令检测到),危险地接近硬件限制(90°C/194°F)。

除其他事项外,我尝试将 CPU 限制在低速(大约 1GHz),认为它可以运行得更凉爽。它没有奏效,我尝试了相反的做法(大约 2.5GHz,始终如此),也没有奏效。

然后我注意到内核没有配置 SMP(但 CPU 有)。出于各种原因,我选择了 32 位内核而不是 64 位内核。而那个特定的发行版(带有 Xfce 的 Sparkylinux:非常棒)提供了一个没有 SMP 的 586 内核(对于较旧的 CPU,似乎是这样)。换句话说,这意味着只使用了一个处理器。

在将内核升级到名为“linux-image-686-pae”的内核后,播放 1080p 视频时温度下降了 20°C/68°F。非常令人印象深刻。

对于正常任务,它似乎也运行得稍微凉爽一些。

在一个比美国热得多的国家生活,有时现成的零件无法承受夏季(即使在室内)较高的环境温度。

这非常有趣。您是否使用过像 top 这样的工具来查看哪些进程占用了最多的 CPU 周期?我可以看到不同的、可能更高效的内核可能会有所作为,但这听起来像是温度的巨大变化。

仅供比较,今天早上我的计算机房的环境温度约为 23.3°C,我的计算机——那些计算负载高的计算机——的运行温度在 40 多摄氏度到 60 多摄氏度之间。我运行所有 64 位内核。

回复 作者 Unbeknownst (未验证)

首先,为了科学的可重复性 :),让我明确说明我是在比较苹果和橙子:从在 FF(实际上是 Iceweasel)中使用 flashplayer-plugin 播放视频到使用 mplayer 播放同一视频,温度大幅下降。

flashplayer 一直受到如此多的抨击,我甚至不需要评论它炸毁计算机的能力,而 mplayer 是高质量编程的瑰宝,就我这个外行而言。

然而,我以前也测试过在只有一个处理器(即没有 SMP)的情况下相同的情况,但差异没有那么显着(大约 5°C 或大约 40°F)。我的理论是,产生的大约相同的热量,但现在以更分散的方式产生。

这样说来,这是一台 5 年前的笔记本电脑,可能有很多灰尘。它有一个 i3 处理器和集成的英特尔显卡;它是我女儿的,与 Windows 一起使用,现在我正在尝试让它工作,因为它比我的其他(所有 Linux)计算机拥有更多的 RAM。我也不是很习惯处理导热硅脂(我家里甚至没有),我想经过这么多年,它可能已经很干燥了。

我使用了 top,它显示 firefox 在播放 1080p 视频(使用 flashplayer)时负责大部分 CPU 使用。720p 没有太大帮助,但 480p 对 CPU 来说相当轻松。再说一次,这台笔记本电脑需要进行一些认真的维护。我尝试使用真空吸尘器(有些人说它会损坏风扇),但外面没有明显的灰尘。

一些罕见的网站有很多小动画,它们也会导致过热(例如,新闻/电子邮件门户网站 www.ig.com.br)。

令人惊讶的是,一些小程序(如对话框工具“yad”)也使 CPU 快速达到高温。似乎是这个:http://sourceforge.net/projects/yad-dialog/

> 仅供比较,今天早上我的计算机房的环境温度约为 23.3°C,我的计算机——那些计算负载高的计算机——的运行温度在 40 多摄氏度到 60 多摄氏度之间。我运行所有 64 位内核。

我在同一张桌子上有一台塔式台式机。现在,传感器显示

核心 0:+42.0°C(高 = +76.0°C,临界 = +100.0°C)
核心 1:+37.0°C(高 = +76.0°C,临界 = +100.0°C)

它也能很好地播放 1080p 视频(而且它是一台 2009 年的 core2 duo 计算机,Mint KDE i686 SMP)。

笔记本电脑正在使用 mplayer 播放带有 SMP 内核的 1080p 视频(它显示 4 个处理器,可能是两个双核)。我有一个窗口,其中包含一个 bash 单行代码,重复 sensors 和 sleep 1。温度在 58°C 到 62°C(136 到 144°F)之间变化。暂停 mplayer 使温度降至 43~45°C(110~113°F),这是非常舒适的低温。

今天比昨天冷。阴天,室外 22°C,现在这个房间里可能大约 24°C。笔记本电脑下面有一个风扇,天花板上也有一个风扇。从外面获取新鲜空气显然使计算机稍微凉爽一些(但在晴天则不然!)。

Iceweasel 使用最多 CPU 9%,直到我取消暂停 mplayer,然后它开始使用 33% CPU(同时播放单独的视频和音频文件),并且奇怪的是,iceweasel 跳到 12%(top 如何计算这些百分比?)

回复 作者 dboth

另一件事是始终保持设备通电,从而大大消除热应力。

多年前,我参观了马萨诸塞州剑桥市的 Multics 开发中心。我问他们为什么每天晚上关闭开发系统电源,然后在早上重新启动。

重点恰恰是为了给组件施加压力。不可靠的组件往往很快就会失效。这是好事,因为当您编写操作系统代码时,您最不需要的就是不稳定的 CPU。

虽然我没有明确说明,但我知道大多数人都会理解我提倡 24/7 全天候开启计算机以延长其寿命。

感谢您提供有关 Multics 的信息。我不知道他们使用热循环来有意使不可靠的组件失效。这是一件好事,尤其是来自在场人士的信息,这很酷。

谢谢!

回复 作者 dgrb (未验证)

谢谢你,David!我在我的笔记本电脑上安装了该软件,现在我可以开始学习如何使用它了。

我不确定您从哪里得到的灯泡灯丝温度为 340° 华氏度的数字。这在我看来异常低,经过检查,我看到它“大约是 2550 摄氏度,或大约 4600 华氏度”。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.