nice命令详解

【命令】nice 调整程序运行的优先级
【格式】nice [OPTION] [command [arguments...]]
【说明】
在当前程序运行优先级基础之上调整指定值得到新的程序运行优先级,用新的程序运行优先级运行命令行
"command [arguments...]" 优先级的范围为-20 ~ 19等40个等级,其中数值越小优先级越高,数值越大优先级越低,即-20的优先级最高,19的优先级最低。

进程的优先级管理

优先级取值范围为(-20,19 ),值越小优先级越高 , 默认优先级是 0
## 优先级越高占用的CPU 值就越高 当系统负载过高时,优先级高的靠后运行 
命令
1 nice 指定程序的运行优先级
格式:
nice n command

2 renice 改变程序的运行优先级
格式:
renice n pid

若调整后的程序运行优先级小于-20,则就以优先级-20来运行命令行;若调整后的程序运行优先级高于19,则就以优先级19来运行命令行。

若nice命令未指定优先级的调整值,则以缺省值10来调整程序运行优先级,即在当前程序运行优先级基础之上增加10。
若不带任何参数运行命令nice,则显示出当前的程序运行优先级。

例一:
[root@localhost ~]# nice
0

在例1中,不用任何参数执行命令"nice",所以显示出当前的程序运行优先级为0。由此可知系统缺省的程序运行优先级为0

例二:
[root@localhost ~]# nice nice
10

在例2中,第1个nice命令以缺省值来调整第2个nice命令运行的优先级,即在系统缺省的程序运行优先级0的基础之上增加10,得到新的程序运行优先级10,然后以优先级10来运行第2个nice命令;第2个nice命令显示当前程序运行的优先级为10。

例三:
[root@localhost ~]# nice nice nice
19

在例3中,第1个nice命令以缺省值来调整第2个nice命令运行的优先级,即在系统缺省的程序运行优先级0的基础之上增加10,得到新的程序运行优先级10,然后以优先级10来运行第2个nice命令;第2个nice命令又以缺省值来调整第3个nice命令运行的优先级,即在第2个nice命令运行优先级基础之上再增加10,得到新的程序运行优先级20,但20大于最高程序运行优先级19,所以以优先级19来运行第3个nice命令;第3个nice命令显示当前程序运行的优先级为19。

【参数说明】
-n, --adjustment=ADJUST 指定程序运行优先级的调整值。
优先级的范围为-20~19,当调整后的优先级小于-20时,以优先级-20 来运行程序;当调整后的优先级大于19时,则以19的优先级运行程序。

例四:
[root@localhost ~]# nice -n -21 nice
-20

在例4中,以参数“-n”的形式指定程序运行优先级的调整值,系统缺省优先级0加上调整值-21得到新的优先级-21(小于-20),因此程序最终的运行优先级为-20。

例五:
[root@localhost ~]# nice --adjustment=20 nice
19

在例5中,以参数“--adjustment=ADJUST”的形式指定程序运行优先级的调整值,系统缺省优先级0加上调整值20得到新的优先级20(大于19),因此程序最终的运行优先级为19。

注意:在使用“--adjustment=ADJUST”形式指定程序运行优先级的调整值时,中间的等号可以省略。在例5中,也可运行命令行“nice --adjustment 20 nice”。
还可以使用参数“-ADJUST”的形式来指定程序运行优先级的调整值,其中,ADJUST为指定的程序运行优先级调整值,可以为负数,也可以为正数,如例6所示。

例六:
[root@localhost ~]# nice --1 nice
-1
[root@localhost ~]# nice -+1 nice
1
[root@localhost ~]# nice -1 nice
1

在例6中,参数“--1”、“-+1”和 “-1”中的第一个字符“-”都是语法定义的指定程序运行优先级调整值的标志符,第一个字符“-”之后的值为指定的程序运行优先级的调整值。

在nice命令中,可以同时指定多个程序运行优先级调整值,但只有最后一次指定的数值有效,如例7所示。

例七:
[root@localhost ~]# nice -n -20 --adjustment +19 -3 nice
3

在例7中,通过命令行同时指定了优先级调整值“-20”、“+9”和“3”,但最后生效的程序运行优先级调整值为最后指定的数值“3”。

注意:只有具有root权限的用户才可以调整高程序运行的优先级,既指定的调整值可以为负数,如例8所示。

例8:
su yc
nice -n -1 nice
nice: cannot set priority: Permission denied
nice -n 1 nice
1

在例8中,我们将用户改为非root用户权限的yc,这时调高程序运行优先级1个级别时操作失败,系统提示权限不足。而调低优先级1个级别时,操作就可以成功。

posted @ 2021-12-11 23:38  咚咚小孩  阅读(323)  评论(0)    收藏  举报