进程优先级,进程pri和ni值解析

F S UID        PID    PPID  C PRI  NI   ADDR    SZ      WCHAN    STIME     TTY          TIME CMD

0 S xxx     12120     1      0  60  -20 - 82593  poll_s    2018       ?           00:00:31      xxxxxx

每个进程都有两个影响其调度的值:

第一个是动态值,内核经常更改这个值,也就是ps -l命令里的pri

第二个是静态值,只是偶尔被用户手工更改,即ps -l里的ni值。对任何进程而言,ni这个值可以从-20到19不等,其中数值越小优先级越高,数值越大优先级越低,

-20的优先级最高,19的优先级最低,需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。

PRI即进程的优先级,此值越小进程的优先级别越高。而NI,也就是我们所要说的nice值(通过nice命令设置),其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice
所以,nice命令设置的优先级不是程序最终的优先级,而只是优先级的修正数值。

 

修改进程优先级的命令主要有两个:nice,renice

1、一开始执行程序就指定nice值:nice

nice -n -5 /usr/local/mysql/bin/mysqld_safe &
linux nice 命令详解

功能说明:设置优先权。

语  法:nice [-n <优先等级>][--help][--version][执行指令]

补充说明:nice指令可以改变程序执行的优先权等级。

参  数:-n<优先等级>或-<优先等级>或–adjustment=<优先等级>  设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。
–help  在线帮助。
–version  显示版本信息。
—————————————————————————
2.1、调整已存在进程的nice:renice

renice -5 -p 5200
#PID为5200的进程nice设为-5
linux renice 命令详解

功能说明:调整优先权。

语  法:renice [优先等级][-g <程序群组名称>...][-p <程序识别码>...][-u <用户名称>...]

补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20–19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。
参  数:
-g <程序群组名称>  使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。
-p <程序识别码>  改变该程序的优先权等级,此参数为预设值。
-u <用户名称>  指定用户名称,修改所有隶属于该用户的程序的优先权。

2.2、也可以用top命令更改已存在进程的nice:

top
#进入top后按“r”–>输入进程PID–>输入nice值

 

posted @ 2019-04-08 14:21  lpaxq  阅读(1546)  评论(0编辑  收藏  举报