CentOS6.3x64マシンでJVMインスタンスを実行しています。1つのCPU使用率が横行し、I/Oがマシン全体をブロックすることがあります。
すべてのJavaプロセスの使用を単一のコアに制限するにはどうすればよいですか?または2つのコア?または指定されたように?
私は試しましたがcpulimit
、複数のコア、および同じ名前の複数のプロセスでは機能しませんでした。
指定された名前のすべてのプロセスのCPU使用率を制限する簡単な方法はありますか?
さて、あなたが必要とするpgrep
のは(PIDを見つけるために)そしてtaskset
。そして、ニーズに応じて、(スーパーユーザーとして)次のように実行します。
for pid in $(pgrep <pattern>);
do
taskset -p 0x00000001 $pid
done
使用方法の詳細については、taskset
マニュアルページを参照してください。schedutils
パッケージのインストールが必要になる場合があります。
もちろん、プロセッサマスク(つまり、割り当てるCPU)を変更することで、そのスキームを必要な複雑さに変更できます。
私が思う cpuset
に追加する必要があります(あなたが言ったと仮定すると、私は名前の付いたツールを知りcpulimit
ませんが、それは何も意味しません)同じ基本的なメカニズムを使用します。したがって、これはあなたの過去の試みと同じように無駄かもしれません。