1

我在 iostat 命令的手册上搜索了 %nice。在 %nice 值的解释中,有一个短语是关于 nice 优先级的。我无法理解它的含义,有人可以解释一下吗?

手册页中的完整注释如下。

%好的

显示在具有良好优先级的用户级别执行时发生的 CPU 利用率百分比。

4

1 回答 1

3

这意味着已经使用该nice命令启动的进程,或者已经调用nice/setpriority以将其优先级降低到标准优先级以下。(nice在旧的 unix 中也是系统调用的名称,setpriority现在已被替换。命令名称仍然相同)。

请参阅 /proc/stat 的手册页或文档,例如http://www.mjmwired.net/kernel/Documentation/filesystems/proc.txt

或者,自己尝试(在属于您的其他已卸载系统上!)。打开 2 个终端。在第一个,键入

$ 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 列增加一;同时,100% 的 CPU 使用率(由 perl 命令引起)从 %user 转移到 %nice。

于 2014-03-01T12:58:32.113 回答