コマンドラインからプロセスの優先度を変更する方法を探しています。組み込み (bash)nice
と、プロセスの良さを変更できるコマンドを見つけましたrenice
が、カーネルによって計算される実際の優先度は変更できませんでした。
優先度を設定できるコマンドはありますか? (または、私は良さと優先度の間で混乱していますか?)
コマンドラインからプロセスの優先度を変更する方法を探しています。組み込み (bash)nice
と、プロセスの良さを変更できるコマンドを見つけましたrenice
が、カーネルによって計算される実際の優先度は変更できませんでした。
優先度を設定できるコマンドはありますか? (または、私は良さと優先度の間で混乱していますか?)
Linux でのプロセスの優先度は動的です。実行時間が長くなるほど、優先度は低くなります。プロセスは、実際に CPU を使用しているときに実行されます。一般的な Linux ボックスのほとんどのプロセスは、I/O を待つだけなので、実行中とは見なされません。
使用可能な CPU コアよりも多くのプロセスが実行されている場合、優先度が考慮されます。最高の優先度が優先されます。しかし、勝利したプロセスが時間の経過とともに優位性を失うと、ある時点で他のプロセスが CPU を引き継ぐことになります。
nice
renice
優先順位からいくつかの「ポイント」を追加/削除します。値が大きいプロセスほど、nice
CPU 時間が短くなります。ルートは負のnice
値を設定することもできます - プロセスはより多くの CPU 時間を取得します。
例: 停止問題を計算する 2 つのプロセス (1 と 2) があり、システムには 1 つの CPU コアがあります。デフォルトはnice 0
であるため、両方のプロセスがそれぞれ約半分の CPU 時間を取得します。ここで、プロセス 1 の値を 10 に変更します。結果: プロセス 2 は、プロセス 1 よりも大幅に多くの CPU 時間を取得します。
注: 最新のデスクトップでは、利用可能な CPU 時間が十分にあり、最近では高速です。残念なことに、HDD はランダム I/O ではまだ比較的遅いため、適切なプロセスでも十分な I/O トラフィックが生成され、システムの速度が大幅に低下する可能性があります。