统一限制 CPU 使用率

dev*_*150 2 linux cpu-usage timing

我有一个程序,我想根据输入来测量它的运行时间,但是我的系统很旧并且有过热问题。让程序以 CPU 使用率满负荷运行约 1 分钟通常会使其休眠/因过热而关闭。

我正在寻找限制 CPU 使用率的方法。我看过cpulimit但它通过多次暂停和继续程序来工作。在这种情况下,这将如何运作?它是在较慢的 cpu 中运行程序的估计,还是会破坏计时结果?

有没有其他软件可以更统一地限制cpu使用?

Xen*_*050 5

听起来您想限制 CPU 的速度或频率。Linux 内核应该能够做到这一点,如果您的 cpu 支持它,您只能将其加速到较低的最大值。例如,如果您的 CPU 通常以 1、2 或 3 GHz 运行,您告诉它只运行到 1 或 2 GHz,并且它应该比在 3 GHz 时保持低得多的温度。

您可以直接使用 sysfs / procfs 接口,但使用起来cpufreq可能要容易得多。在 Debian/Ubuntu 上,该软件包称为 cpufrequtils,这是一个Ubuntu 软件包搜索

运行cpufreq-info应该告诉你可用的 cpu 和频率和调控器,以及 cpu 是否“以相同的硬件频率运行”或“需要通过软件协调它们的频率”。

例如,要将 cpu0 的最大频率设置为 1.5GHz,您可以运行:
cpufreq-set --cpu 0 --max 1.5GHz

不同的调控器和设置决定何时加速和减慢 CPU,将它们设置为“错误”可能会使 CPU 看起来永远不想加速,或者永远不想减速,但总的来说,我认为保守的调控器是比按需调节器更好(它通常是默认设置,如果你最近甚至看着你的电脑很有趣,它似乎会加速;-) 例如,这个命令告诉保守的调节器在 cpu 只有 50% 忙时放慢速度:
echo 50 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/down_threshold


当然,我怀疑您的计算机出现了物理问题。它不应该像那样关闭。

  • 棉绒是否阻塞了风扇和气流?通风口堵塞?
  • 风扇是全速运行还是根本不运行?
  • 散热器是否正确连接或损坏?

是真的因为 CPU 过热而关闭(日志支持它),还是电源放弃/过热?