我已经使用过hdparm -n,smartctl -A但它似乎总是一种“每驱动器”技术,因为驱动器可能只回答这些工具中的一个。
那么,是否有一种标准方法可以在 Linux(HDD 或 SSD)上获取驱动器温度?如果没有,我可以使用什么(其他)工具来获取这些信息?
有没有办法监控温度或读取/写入和 NVMe 驱动器(在这种情况下是 Intel 750)。hdparm, udisksctl, smartctl, 等等hddtemp似乎都缺乏这个能力,google 搜索一直无果而终。
出于好奇,这是我使用 NVMe 作为系统驱动器运行 Fedora 23(工作站)时遇到的唯一困难。
主流 Linux 发行版是否通常记录系统温度数据,例如 CPU 或 HDD 温度?如果是这样,在哪里可以找到这些日志?
我在有过热问题的 HP Pavilion dv9000t 上使用 ArchLinux。我尽我所能在笔记本电脑中获得更好的空气流动并放置更好的导热膏,但仍然存在问题:
CPU温度低时风扇停止旋转(即使GPU温度高,这是有问题的)。
我发现我可以通过启动一些繁重的处理命令(比如yes命令)来让风扇运行。但是,这不是解决方案,因为我需要在 CPU 变得太热时停止此命令,并在风扇停止时再次启动它(以便 GPU 不会变热)。
我尝试使用此 wiki控制风扇,但是当我运行时pwmconfig,出现此错误:
/usr/bin/pwmconfig: There are no pwm-capable sensor modules installed
Run Code Online (Sandbox Code Playgroud)
你知道我该怎么做才能让风扇一直旋转吗?
编辑:
该sensors-dectect输出如下:
~/ sudo sensors-detect
# sensors-detect revision 6170 (2013-05-20 21:25:22 +0200)
# System: Hewlett-Packard HP Pavilion dv9700 Notebook PC [Rev 1] (laptop)
# Board: Quanta 30CB
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe …Run Code Online (Sandbox Code Playgroud) 我有一台配备 Intel i7-12700 32GB RAM 的新台式电脑。
我正在做构建代码的工作,我使用sensors命令来检查CPU温度,我发现大多数核心都是@ 100C。
这正常吗?
CPU硬件本身会控制频率以适应温度吗?
更新
我检查了dmesg,发现了很多日志,如下所示:
mce: CPUxx: Package temperature above threshold, cpu clock throttled
Run Code Online (Sandbox Code Playgroud)
看起来CPU控制本身不高于100C。
我想使用i3status来显示我的 CPU 核心温度(haswell i7)。但是设置:
order += "cpu_temperature 1"
#...
cpu_temperature 1{
format = "T: %degree °C"
}
#
Run Code Online (Sandbox Code Playgroud)
不显示正确的核心温度。它显示的数字似乎对应于 xsensors 为 temp1 显示的值,如果我将上面的 1 更改为 2,它对应于 xsensors temp2。尝试 3 或 4 没有任何效果。但是,我想获得 i3 状态的所有 4 个核心的真实核心温度。我怎样才能做到这一点?
使用带有 i7-7700HQ(基本时钟 2.8Ghz)和 GTX 1050 的 Lenovo Legion Y520。
我在 linux 中收到 CPU 过热警告,它影响了我在游戏中的表现(在 Payday 2 和 CS:GO 中找到)。我在 Windows 中从来没有遇到过问题。
这是我在尝试解决此问题时发现的:
在 Windows 10 中(使用 aida64)
Windows 在空闲时保持在 3.4 Ghz 左右(不知道为什么在 CPU 使用率不到 3% 的情况下如此之高),温度在 50C 左右。
当给 CPU 施加压力时,温度会缓慢地(在几秒钟内而不是瞬间)从大约 50C 上升到大约 75C 并舒适地保持在那里。压力时时钟速度约为2.9Ghz。利用率始终为 100%。Aida64 不报告节流。受压时,CPU 内核上的电压从大约 1.1 到 0.9 不等。
在 Arch Linux 中(使用 s-tui)
Linux 在空闲时保持在 2.0Ghz 左右,温度在 50C 左右。
这就是奇怪的地方:当给 CPU 施加压力时,温度会立即从 50C 升至 93C 左右。压力时时钟速度正好是 3.4Ghz。利用率始终为 100%。当关闭压力测试时,温度立即回到 50C 左右,就好像什么都没发生过一样。这样做时,笔记本电脑当然不会感觉它加热到 90C+,即使在长时间压力之后也是如此。
这是一张图片,显示了温度、功率和频率如何同时下降。注意在这么短的时间内 cpu 温度变化了多少。

我该如何解决这个限制问题?在 linux …
我一直遇到过热问题,这使我的笔记本电脑立即关机。无论如何,是否可以监控传感器的温度并降低 CPU 频率以避免该问题?是否有任何现有的软件或 shell 脚本可以处理该工作?
我在我的 ThinkPad t420 笔记本电脑上运行最新的 Arch Linux,并且遇到间歇性发热问题,我的温度会从典型的 ~45°C 上升到 ~75-90°C,并保持在那里直到我重新启动。
我运行了几种诊断工具,包括htop谷歌搜索建议的明显工具和其他工具,包括powertop, iostats,当然还有我不记得的其他工具。到目前为止,我没有发现任何明显的问题,无论我的机器是正常运行还是处于这种热状态,表面上的读数都没有差异。
我还一一杀死了大多数可疑进程(数据库和其他守护进程),希望找到隐藏的罪魁祸首,但无济于事。
除了这些尝试之外,我不知道从哪里开始故障排除。我希望有人能指出我正确的方向,开始寻找更深层次的问题。
一些可能有用的注意事项:
htop进入此热状态后,CPU 使用率和负载将正常报告。这包括内核线程。根据htop,系统基本上处于空闲状态(系统范围内的 CPU 使用率为 1-2%,负载为 0.10)。powersave编辑:在撰写此问题时,我的风扇控制无法正常运行,并且即使在高温下也以中等 RPM 范围(3900 RPM)持续运行。在@Alex 和@JustDanyul 的建议下,此问题已得到修复。然而,根本的问题仍然存在。
根据sensors,我的 CPU 内核的临界温度是 100°C。使用我的笔记本电脑时,它永远不会超过 95°C(因此,要么我的传感器有缺陷,要么出于某种原因将热节流设置为较低的值,但这并不重要)。我有一个 Intel i7,并且 heatd.service 已启动并正在运行,我使用的是 Arch Linux。
但是 95°C 太热了,我想降低该值。我想在 75 或 80°C 下进行热节流。我认为这会很简单,但显然谷歌上的信息很少,并且 heatd 的配置缺乏文档。
我试过
dbus-send --system --dest=org.freedesktop.thermald /org/freedesktop/thermald org.freedesktop.thermald.SetUserPassiveTemperature string:cpu uint32:80000
Run Code Online (Sandbox Code Playgroud)
正如联机帮助页所暗示的那样,但运行stress仍然使温度高达 95。
那么如何降低发生热节流的值呢?
temperature ×10
cpu ×4
linux ×3
arch-linux ×2
hard-disk ×2
sensors ×2
ssd ×2
fan ×1
games ×1
gpu ×1
htop ×1
i3 ×1
intel ×1
io ×1
logs ×1
monitoring ×1
software-rec ×1