我可以使用 ulimit 来防止系统过热和重新启动吗?

我可以使用 ulimit 来防止系统过热和重新启动吗?

我刚刚得知 的乐趣ulimit

这让我开始思考……如果我的系统带有旧处理器,并且持续过热,举个例子吧;没有其他硬件可以插入,因为它太旧了;通过限制用户使用的系统资源量,是否可以使 CPU 保持凉爽并允许我从中复制我的东西?

我的意思是,这听起来像是一种黑客行为,而不是 的预期目的ulimit,但我只是想知道这是否有效。我也想,尽管您必须将其应用于系统上的所有用户。我还认为运行级别 1 也会导致类似的情况。

答案1

没有用,没有。ulimit主要限制进程可以使用的各种类型的内存量(直接使用的内存以及系统表中的条目,例如文件描述符和进程表)。ulimit可以用来杀死总共消耗超过一定 CPU 时间的进程,但这与 CPU 温度无关。占用 CPU 几分钟的进程可能会导致系统过热,而一天中占用几分钟则不会出现问题。

ulimit还可以对进程的调度优先级设置限制,但这也没有用,因为阻止进程使用 CPU 时间的唯一方法是其他进程使用 CPU。出于同样的原因,nice不会让您的 CPU 保持凉爽。

限制 CPU 的最大频率会导致 CPU 运行温度降低。在 Linux 下,你可以用类似的东西来做到这一点

echo 2097152 | tee /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq

这会将 CPU 频率限制在 2GHz(scaling_max_freq单位为kHz)。每个policy*目录对应一个核心。

处理器应该防止过热并减慢速度而不是崩溃(更不用说着火了,CPU在实践中得到了很好的保护),但实际上有时它们确实会崩溃。

相关内容