我用iogleat命令的man手册搜索了关于%nice的信息。在%nice的值的explanation中,有一个关于优先级的短语。我无法理解它的含义,有人可以解释一下吗?
手册页中的完整注释如下。
%好的
显示在用户级别执行时具有良好优先级时发生的CPU利用率百分比。
答案 0 :(得分:3)
它表示已使用nice
命令启动的进程,或已调用nice
/ setpriority
以将其优先级降低到标准优先级以下的进程。 (nice
也是旧的unix中系统调用的名称,现在它被setpriority
替换。命令名仍然相同。)
请参阅/ proc / stat的手册页或文档,例如http://www.mjmwired.net/kernel/Documentation/filesystems/proc.txt。
或者,亲自尝试(在属于您的其他未加载的系统上!)。打开2个终端。在第1个,输入
$ perl -e 'print "$$\n"; for (;;){}'
并记住pid,然后在第二个
$ ps -l -p <pid>
$ iostat -c 1 5
然后,在第一个终端中停止该过程,并以较低优先级重新启动它:
$ nice -1 perl -e 'print "$$\n"; for (;;){}'
输出,在我的系统上: (第一次)
$ perl -e 'print "$$\n"; for (;;){}'
22482
$ ps -l -p 22482
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 R 1000 22482 22443 99 80 0 - 4279 - pts/1 00:00:16 perl
$ iostat -c 1 5
...
avg-cpu: %user %nice %system %iowait %steal %idle
100.00 0.00 0.00 0.00 0.00 0.00
(很好)
$ nice -1 perl -e 'print "$$\n"; for (;;){}'
22666
$ ps -l -p 22666
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 R 1000 22666 22443 99 81 1 - 4279 - pts/1 00:00:06 perl
$ iostat -c 1 5
...
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 100.00 0.00 0.00 0.00 0.00
nice -1
命令使NI列增加1;同时,100%的CPU使用率(由perl命令引起)从%user移动到%nice。