私は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 &
結果:
シナリオ2:setpriorityを介してコードの見栄えを変更し、プロセスを実行します。 niはまだゼロです。
int which = PRIO_PROCESS;
id_t pid = getpid();
int ret;
int priority = -10;
ret = setpriority(which, pid, priority);
答え1
~からman 1 top
:
ni
,nice
: ユーザープロセスの実行時間
「Niced」は「デフォルトより良い」、つまり「デフォルトより良い0
」と解釈する必要があります。-10
あなたの例では、良い流れを観察していません。少ないさて、悪くないです。
たとえば、これはそれほど悪くはありません。
nice -n 1 md5sum /dev/urandom