Systemd
如何使用 systemd-run 限制 CPU 使用率
我有一個錯誤的程序,即使它處於空閒狀態,它也會使用 100% 的 CPU。由於目前修復它不實用,我只想限制它使用不超過 10% 的 CPU。但是,無論我做什麼,該程序總是會佔用 100% 的 CPU。
我在Arch Wiki上找到了告訴我創建一個包含以下內容的文件的說明:
# cpulimit.slice [Slice] CPUQuota=10%
顯然,我可以使用這些限制啟動一個 shell,如下所示:
systemd-run --slice=cpulimit.slice --uid=myuser --shell
這似乎可行,在輸入我的 sudo 密碼後,我得到了一個 shell,所以我執行了一個簡單的測試,它將使用 100% CPU,我可以用 Ctrl+C 停止:
while true; do true; done
我希望它使用不超過 10% 的 CPU,因為它在切片內執行,但它總是使用 100% 的 CPU!
我究竟做錯了什麼?
才發現問題。該
.slice
文件必須放入/etc/systemd/system/
並且您必須先執行systemctl daemon-reload
。然後一切正常。不幸的是,
systemd-run
如果您使用無效參數,該命令不會給您任何錯誤消息--slice
,它只是創建一個沒有其他限制的新切片,稱為您提供的任何名稱。