从温度方面限制 CPU 使用率

从温度方面限制 CPU 使用率

我运行分布式计算项目,通常需要使用 100% 的 CPU。如何限制 CPU 的温度使用率(而不是百分比使用率)?此外,保持 Intel i5 全天候运行的最高安全温度是多少?(没有 CPU 限制时,FahCore_a4 会导致这台机器在 82 摄氏度下运行。)

答案1

此网页上有一个 bash 脚本,它将尝试将您的 CPU 保持在指定温度以下。http://seperohacker.blogspot.com/2012/10/linux-keep-your-cpu-cool-with-frequency.html

您只需为其提供所需的最高温度,它就会限制您的 CPU 温度,以使其保持在该温度以下。

无耻的插件-我编写并维护了上述脚本。

答案2

以下是我使用 bash 解决该问题的方法。如果有人想出更好的守护进程(更适合保持在目标温度附近),请发布。

#!/usr/bin/env bash

while true; do
  val=$(sensors | awk '/Core 0/ {print $3}')
  max="+60.0"
  if [[ "$val" < "$max" ]]
  then
    killall cpulimit
    sleep .1
  else
    cpulimit -e FahCore_a4 -l 99 &
    sleep 1
  fi
  clear
  sensors
done

答案3

CPU 本身具有一种机制,如果过热它就会自动关闭电源。(如果您禁用 SMI 中断则可能不会发生这种情况,对此我不确定。)

主要的用户空间应用程序是lm-sensors软件包。安装后运行sensors-detect进行设置,如果您的机器相同,您可以运行一次,并在任何地方使用结果。

CPU 频率可通过 cpufreq 驱动子系统轻松控制。请参阅https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling

您可以编写一个使用 lm-sensors 来轮询温度的守护进程,如果温度太高则调低 CPU 频率。

答案4

“安全”温度

CPU 的最大安全温度通常在制造商的技术规格中指定。最高 100°C 很常见。您可能希望将温度保持在此值以下几°C 以留出一些余量(安全性和组件的使用寿命)。

此外,CPU 发热会将部分热量传递到计算机中物理上接近的其他组件。您可能需要在 CPU 以 100% 运行时进行一些测试并监控这些组件的温度,以检查您是否离它们太近他们的从长远来看,这是有限制的。最好在炎热的天气里测试。:)

温度调节

  • 然后你可以thermald安装一个程序旨在使用各种技术监控和限制 CPU 温度。

  • 最后,例如,英特尔酷睿 CPU 有一个内部温度限制机制,您可以配置低于上述 100°C,通过选择°C 为单位的裕度。

这个答案更多细节。

相关内容