
私はniceを使用して通常よりも高い優先順位でXアプリケーションを起動するプログラム実行プログラムを作成しています。 nice/reniceの使用に関するガイドはたくさんありますが、プログラムの優先順位の設定に関するベストプラクティスについての議論はあまりありません。 -10を超えることは、「重要なサブプロセス」がそれに依存するプログラムよりも優先順位が低いため、逆効果を生み出す可能性があると言うサイトと-20は悪い考えですが、他のすべては大丈夫だと言う別のサイトを発見しました。だから私の質問は、ワードプロセッサ/ブラウザ/ゲームなどを実行しているシングルユーザーデスクトップの収益が減少するポイントがあるのか、それともユーザーが実行しているすべてのプログラムに対してデフォルト値を-19に設定したくないのかということです。 ?現時点ではLinuxカーネルで実行されると予想していますが、BSDなどの他のユニスにも潜在的な問題があるかどうかに興味があります。
答え1
Linuxのスケジューラには、次の戦略があります。
SCHED_NORMAL
ほとんどすべての作業に使用されます。これらのタスクの優先順位が高いほど、予約時間が長くなります。SCHED_BATCH
優先順位が低いですSCHED_NORMAL
。SCHED_IDLE
19
より優先順位が低いですSCHED_NORMAL
。SCHED_FIFO
/はSCHED_RR
ほぼリアルタイムで、システムで最も高い優先順位を持ちます。デフォルトでは時間分割はなく、終了するまで実行できます。
これに関する文書は次のとおりです。https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt
これらの優先順位がどのように進行しているかを理解するには、次の点に注意してください。スケジューラがすること:
コンピューティングでは、スケジュールは、タスクを実行するリソースに何らかの方法で指定されたタスクを割り当てる方法です。
だけでなく、慢性疲労症候群あなたが言うスケジューラです。
したがって、プロセスをより高い優先順位に設定することは、スケジューラがより低い優先順位プロセスよりもそのプロセスを選択することを意味します。
答え2
nice
シングルユーザーデスクトップでは、リアルタイムの予約ではなく、使いやすさとコマンドについて話していると仮定すると、基本的なアプリケーションプロセスの優先順位を変更しても、実際の欠点/リスクはありません。
しかし、次の2つの理由から、実質的なインセンティブもないでしょう。
プロセスの優先順位はCPU使用率に関連していますが、最近ではCPUがボトルネックを引き起こすことがほとんどなく、CPUが高速でマルチコアとマルチスレッドの場合が多いため、通常はプロセスを同時に実行できる電力が十分です。 CPU(存在する場合)。
デスクトップアプリケーションは一般的にインタラクティブなので、ユーザー入力、ネットワークI/O、またはディスクI/Oを待つのに多くの時間を費やすため、優先順位を変更してもこのアイドル期間が過ぎても実際に優先順位が変わるため、大きな影響はありません。増加する。
場合によっては、CPU 集約的なバッチ操作を開始する場合、優先順位を下げるか、他のプロセスの優先順位を上げると顕著な影響を与えることがあります。