CPU limitはどのようにCPUリソースを制限するのか?
2006年12月 8日(金) 20:34 JST
閲覧数 11,570
UNIX系OSで指定したプロセスのCPUリソースの使用を制限するプログラムとしてCPU limitは以前紹介しましたが。
実際にどのように使用リソースの制限をしているのでしょうか。
ソースをのぞいてみてシンプルさに驚いたw
kill(pid,SIGCONT)
kill(pid,SIGSTOP)
この2個だけですね。
SIGSTOPシグナルでプロセスを一時停止させて休ませて、SIGCONTシグナルでまた戻す。
これを短時間で繰り返すだけですか。
PIDを自身のPIDではなく、親PIDみて制限するように改良して、
複数同時に立ち上がってるプロセスへのリソースの分配方法を決めてやれば、
ごちゃごちゃプロセス起動するプログラムでも制限かけれそうですね~。
う~ん、どうやって分配すれば綺麗に動くんですかね~?
実際にどのように使用リソースの制限をしているのでしょうか。
ソースをのぞいてみてシンプルさに驚いたw
kill(pid,SIGCONT)
kill(pid,SIGSTOP)
この2個だけですね。
SIGSTOPシグナルでプロセスを一時停止させて休ませて、SIGCONTシグナルでまた戻す。
これを短時間で繰り返すだけですか。
PIDを自身のPIDではなく、親PIDみて制限するように改良して、
複数同時に立ち上がってるプロセスへのリソースの分配方法を決めてやれば、
ごちゃごちゃプロセス起動するプログラムでも制限かけれそうですね~。
う~ん、どうやって分配すれば綺麗に動くんですかね~?