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

目前还没有读者喜欢这个。
Iceburg with a cycle symbol

Opensource.com

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

您有没有想过为什么会这样?

热应力

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

当我在 PC 时代初期在 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°C 低到 60°C 高之间。我运行所有 64 位内核。

回复 作者:Unbeknownst (未验证)

首先,为了科学的可重复性 :),让我澄清一下,我是在比较苹果和橘子:从在 FF(实际上是 Iceweasel)中使用 flashplayer-plugin 播放视频到使用 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°C 低到 60°C 高之间。我运行所有 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本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.