【问题标题】:what does the "nice priority" mean about iostat command's %nice关于 iostat 命令的 %nice 的“优先级”是什么意思
【发布时间】:2014-04-02 14:32:18
【问题描述】:

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

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

%不错

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

【问题讨论】:

    标签: linux nice iostat


    【解决方案1】:

    这意味着已使用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。

    【讨论】:

    • 所以你的意思是任何进程都以低于零的优先级运行?你有任何关于它的规范链接吗?
    • 添加了一些示例。小心“低于零的优先级”,获得较少 CPU 的进程对其他进程来说是“好”的,即具有更高的好值。因此,如果一个进程在 NI 列中有一个 LOWER 数字,它将获得更多的 CPU。
    • 对不起,我的理解错误,你的例子非常全面。谢谢。
    猜你喜欢
    • 2012-09-06
    • 2016-05-08
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多