どのような状況で、上位のni%は0ではありませんか?

どのような状況で、上位のni%は0ではありませんか?

私はniがユーザー空間プロセスのためのCPUを意味し、その利点または優先順位の値が変わったことを理解しています。しかし、私のシステム、つまりCentOS Linuxリリース7.9.2009(Core)では、以下のテストとすべてのテストを実行しました。その結果、niは常に0です。ni%がいつ変更されるのかを理解するのに役立つ人はいますか?

ProNoChangeは、いくつかのCPUを消費する簡単なプロセスです。

シーン1:

  taskset -c 31 ./PriNoChange 50 &

  taskset -c 31 nice -n -10 ./PriNoChange 50 &

  taskset -c 31 chrt --rr 50 ./PriNoChange 50 &

結果:

3つのプロセスの最高結果

シナリオ2:setpriorityを介してコードの見栄えを変更し、プロセスを実行します。 niはまだゼロです。

  int which = PRIO_PROCESS;
  id_t pid = getpid();
  int ret;
  int priority = -10;
  ret = setpriority(which, pid, priority);

setpriorityを介してnicenessを変更 ありがとう、ラッセル

答え1

~からman 1 top:

ni, nice : ユーザープロセスの実行時間

「Niced」は「デフォルトより良い」、つまり「デフォルトより良い0」と解釈する必要があります。-10あなたの例では、良い流れを観察していません。少ないさて、悪くないです。

たとえば、これはそれほど悪くはありません。

nice -n 1 md5sum /dev/urandom

関連情報