他のCPU集約命令を実行するbashスクリプトがあります。
cpulimit
bashスクリプトに適用すると、top
スクリプト内のコマンドを表示するプロセスの出力は影響を受けずに実行され続けますcpulimit
。 bashスクリプト内でコマンドのCPU使用量を制限する方法を知りたいです。
ベストアンサー1
によるとcpulimit --help
:
-i, --include-children limit also the children processes
私はこれが子供たちに働くかどうかをテストしませんでした。
cgroups
あるいは、カーネル関数であるものを使用することもできます。
Cgroup自体は子プロセスを制限する方法を提供しませんが、libcgroupが提供するcgルールエンジンデーモン(cgred)を使用できます。cgexec
libcgroupパッケージのコマンドとコマンドは、ルールが子プロセスにも適用されるフラグを提供します。cgclassify
--sticky
競合状態が関連していることに注意してください。できる(少なくとも理論的には)いくつかのサブプロセスが正しく調整されないようにします。しかし、現在cpulimit
ユーザースペースで実行されているコマンドを使用しているので、すでに100%信頼できるCPU制限はないため、この競争条件は取引を妨げてはいけません。
私はここで私自身の答えでCGルールエンジンデーモンを詳しく扱っています。