Ulimit

我可以使用 ulimit 來防止系統過熱和重新啟動嗎?

  • October 15, 2019

我剛剛得知ulimit.

這讓我開始思考……如果我的系統帶有一個一直過熱的舊處理器,讓我們舉例說明;沒有其他硬體可以插入,因為它太舊了;通過限制使用者使用的系統資源量,這可能會使 CPU 保持涼爽並允許我從中複製我的東西嗎?

我的意思是這聽起來像是一種 hack,而不是 的預期目的ulimit,但我只是想知道這是否有效。我也猜想,儘管您必須將其應用於系統上的所有使用者。而且我還認為執行級別 1 也會導致類似的方式。

沒有用,沒有。ulimit主要限制程序可以使用的各種類型的記憶體量(直接使用的記憶體以及系統表中的條目,例如文件描述符和程序表)。ulimit可用於殺死總消耗超過一定量 CPU 時間的程序,但這與 CPU 溫度無關。佔用 CPU 幾分鐘的程序可能會導致系統過熱,而在一天中使用幾分鐘不會有問題。

ulimit也可以對程序的調度優先級設置限制,但這也沒有用,因為阻止程序使用 CPU 時間的唯一方法是其他程序使用 CPU。出於同樣的原因,nice不會讓你的 CPU 保持涼爽。

導致 CPU 執行溫度降低的原因是限制了它的最大頻率。在 Linux 下,你可以用類似的東西來做到這一點

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

這將 CPU 頻率限制在 2GHz(scaling_max_freq以 kHz 為單位)。每個policy*目錄對應一個核心。

應該保護處理器免受過熱和減速而不是崩潰(更不用說著火了,CPU 在實踐中得到了很好的保護),但實際上有時它們確實會崩潰。

引用自:https://unix.stackexchange.com/questions/546976