私は最近、コースの美しい価値を学びました。ユーザープログラムを実行している場合は、nice値をできるだけ低く設定する必要がありますか?これにより、プロセスはより速く実行されますか?
答え1
開始されたプログラムの良い値は通常ゼロです。つまり、システムで実行されている他のほとんどのプロセスの良い値よりも高くも低くもありません。 Nice-Valueはプロセスの予約優先順位を変更します。
権限のないユーザーは次のことができます。ただ良い値を指定してください減らす独自のプロセスのスケジューリング優先順位(「より良い」場合でも)
スケジュール優先順位の高いプロセスは実行されない可能性があります。急いで低スケジューリング優先順位と比較すると、カーネルの実行キューが長くなり(多くの同時プロセスが忙しいシステムでCPU時間をかけて競合する場合)、負荷(測定値)が増えます。実行キューの長さ)が増加すると、キューの他のプロセスと比較して実行がスケジュールされる可能性が高くなります。実行可能より頻繁。
そうでない場合怠惰システムで良い値の高いプロセスを実行することは、良い値の低いプロセスを実行することと変わりません。いずれにしても、CPU使用率は100%または100%に近いです。より速くまたは遅く実行されません。
権限のないユーザーの場合とnice
ユーティリティrenice
は、他のユーザーに適するようにプロセスの予約優先順位を下げるために使用されるユーティリティです。
rootユーザーは、実行中のプロセスの予約優先順位を上げるか、より高い値でプロセスを開始できます。
私の(OpenBSD)システムでより高いスケジューリング優先順位で実行される唯一のプロセスは、ntpd
(タイミングデーモン)とsndiod
(OpenBSDのオーディオ/ MIDIサーバー)です。他のプロセスがタスクを完了するのを待たずに。
答え2
短い答え
(一般ユーザーとして)悪い考えなので、そうすることはできません。
長い答え
ほとんどの場合、これには違いはありません(唯一の実行プロセスまたは実行中のスレッドの総数がCPUコアの数より少ない場合)。
影響を与えると、プロセスが悪くなります。プロセッサをつかみます。コンピュータが応答しなくなります。
より長い答え:
Niceneseを減らすのが適切な唯一のケースはリアルタイムプロセスです。これは、特定の時間内に作業を完了する必要があるプロセスのためです。これらの手順は美しく書かれなければなりません(ではありませんnice
)。それはそこで仕事をし、プロセッサを捨てることです。多分あなたはこれでいたずらをしたくないでしょう。誠実に動作するプロセスの動的優先順位が高くなるため、これは不要になる可能性があります。 (より極端なリアルタイム優先順位もあります(Real-Time Schedulerを参照)。これらの優先順位は絶対に触れたくない場合があります。特に本番システムではこれが重要です。