アイドル状態でもCPUを100%使用するバグのあるプログラムがあります。現時点では修正は現実的ではないので、10%を超えないCPUを使用できるように制限したいと思います。しかし、私が何をしても、プロセスは常に1つのCPUの100%を消費します。
Arch Wiki に、これを含むファイルを作成するように指示する手順が見つかりました。
# cpulimit.slice
[Slice]
CPUQuota=10%
どうやら、これらの制限を使用して、次のようにシェルを起動できます:
systemd-run --slice=cpulimit.slice --uid=myuser --Shell
これは機能しているようで、Sudoパスワードを入力するとシェルが表示されるので、100%CPUを使用する簡単なテストを実行し、Ctrl + Cで停止できます。
while true; do true; done
これはスライス内で実行されているため、10%以下のCPUを使用すると予想しますが、常に100%のCPUを使用します。
何が悪いのですか?
問題を発見しました。 .slice
ファイルは/etc/systemd/system/
に配置する必要があり、最初にsystemctl daemon-reload
を実行する必要があります。その後、すべてが機能します。
残念ながら、無効なsystemd-run
パラメータを使用しても、--slice
コマンドはエラーメッセージを表示せず、指定した名前と呼ばれる追加の制限なしに新しいスライスを作成するだけです。