Linux 监控工具,让您的硬件保持凉爽

还没有读者喜欢这篇文章。
Iceburg with a cycle symbol

Opensource.com

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

您有没有想过为什么会发生这种情况?

热应力

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

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

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

每次打开灯泡时,电流都会涌入灯丝,并使其从室温快速加热到大约 340° 华氏度(温度取决于灯泡的功率)。这会导致热应力,原因是灯丝所用金属的汽化以及仅仅由加热引起的金属快速膨胀。当灯泡关闭时,热应力在冷却阶段会重复出现——尽管程度较轻——因为灯丝会收缩。灯泡开关循环的次数越多,这种应力的累积效应就越大。

热应力的主要影响是,灯丝的一些小部分——通常是由于细微的制造差异——往往比其他部分更热,导致这些点的金属蒸发得更快。这使得灯丝在这些点变得更脆弱,并且在随后的开机循环中更容易快速过热。最终,当灯泡打开时,最后一点金属蒸发殆尽,灯丝在一道非常明亮的光芒中死亡。

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

散热至关重要

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

即使在家庭或办公室环境中,适当的散热也至关重要。事实上,在这些环境中,散热甚至更为重要,因为环境温度要高得多(这主要是为了人类的舒适度)。

温度监控

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

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

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

最简单的工具是 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 (Berkeley Open Infrastructure for Network Computing),并且我运行 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 插件播放视频到使用 mplayer 播放同一视频,温度大幅下降。

flashplayer 已经被如此猛烈抨击,我什至不需要评论它烧坏计算机的能力,而 mplayer 是高质量编程的瑰宝,就我这个外行而言。

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

排除了这一点,这是一台 5 年旧的笔记本电脑,可能有很多灰尘。它有一个 i3 处理器和集成 intel 显卡;它是我女儿的,与 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 播放 1080p 视频,带有 SMP 内核(它显示 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.