【发布时间】:2014-04-02 14:32:18
【问题描述】:
我在 iostat 命令的手册中搜索了 %nice。在 %nice 的值的explanation 中有一个关于nice 优先级的短语。我无法理解它的含义,有人可以解释一下吗?
手册页中的完整注释如下。
%不错
显示在具有良好优先级的用户级别执行时发生的 CPU 利用率百分比。
【问题讨论】:
我在 iostat 命令的手册中搜索了 %nice。在 %nice 的值的explanation 中有一个关于nice 优先级的短语。我无法理解它的含义,有人可以解释一下吗?
手册页中的完整注释如下。
%不错
显示在具有良好优先级的用户级别执行时发生的 CPU 利用率百分比。
【问题讨论】:
这意味着已使用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。
【讨论】: