cpulimit というのは、えーと…
cpulimit はプロセスの cpu 負荷 (cpu 時間ではなく、パーセンテージで表される) を制限しようとするプログラムです。cpu を無駄食いしてほしくない時のバッチジョブの制御に役立ちます。nice 値や他の優先処理には影響を与えずに、真の cpu 使用量に効果を及ぼします。システム負荷全体に適用できる他に、動的かつ素早く実行します。というプログラムだそうな。WindowsのBES(Battle Encoder Shirase)みたいのがLinuxにないかなーと探したら、これを見つけました。cpulimitを使えば「CPUを20%以上使うな」という命令を与えることができます。たぶん。
→ http://packages.debian.org/ja/lenny/cpulimit
使い方ですが、例えば下のようにプロセスIDで
PID3355のプロセスを50%に制限 $ cpulimit -p 3355 -l 50プロセス名でも指定できます
ffmpegを50%に制限 $ cpulimit -e ffmpeg -l 50 絶対パスで指定 対象プロセスも絶対パスで起動している必要がある? $ cpulimit -e /usr/bin/ffmpeg -l 50見ての通り「-l 数字」で上限を決めるのですが、この数字の最大値は「コア数x100」となっているらしいです。マルチコア未対応のプログラムの場合は気にしなくてもいいのかな? よく分からん。とにかく top コマンドの %CPU を見ながら制御すればいいみたいだけど
≪参考≫
・めも - cpulimitでCPUの使用率を制限する
≪追記≫
しばらく更新が止まっていましたが、別の人がLimitCPUで開発を再開しています
上の記事に対するコメントです
1. 箱入り老人 2019/02/20 07:43
今ではちょっと非力なマシンなので、こういうのを探していました。
大変参考になりました。
これ、自動起動で使ってるソフト、例えば火狐等のブラウザなら、時間差でスタートアップ(StartupApplication等)に、ソフトより後に起動するように、プロセス名で制限する形のコマンドを登録しておくと簡単でいいです。
シェルスクリプトで、最初にソフトを起動し、次に、このコマンドを記述しておいて、ソフトその物を、シェルスクリプトから起動する手もありますね。