Linux
在什麼情況下 ni% in top 不是 0
我了解到 ni 代表用於更改 niceness 或優先級值的使用者空間程序的 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改變程式碼中的niceness,然後執行程序,仍然ni為0
int which = PRIO_PROCESS; id_t pid = getpid(); int ret; int priority = -10; ret = setpriority(which, pid, priority);
來自
man 1 top
:
ni
,nice
: 執行 niced 使用者程序的時間“Nice”應該被解釋為“比預設更好”,即“比預設更好
0
”。您沒有觀察到 niced 程序,因為-10
在您的範例中不太好,它不算是 niced。例如,這算作 niced:
nice -n 1 md5sum /dev/urandom