程对CPU资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。
这里主要讲nice和renice命令的使用。
先执行下面的命令:
ps -lA
参数是小写的L和大写的A,注意看清楚。
看看几个字段的解释:
UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的nice值
UID、PID和PPID这三个很容易理解。PRI即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。NI就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。所以,nice值也并不是优先级了。
nice命令:
功能说明:设置优先权。
语 法:nice [-n <优先等级>][–help][–version][执行指令]
补充说明:nice指令可以改变程序执行的优先权等级。
参 数:-n<优先等级>或-<优先等级>或–adjustment=<优先等级> 设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。
–help 在线帮助
–version 显示版本信息
(1)可以在程序开始运行时就指定nice值:
nice -n -5 /usr/local/nginx/sbin/nginx
(2)调整已经在运行的进程的nice值,就用renice
renice -5 -p 2958
这就是将进程号为2958的进程的Nice值调整为-5
renice命令:
功能说明:调整优先权
语 法:renice [优先等级][-g <程序群组名称>…][-p <程序识别码>…][-u <用户名称>…]
补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20–19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级
参 数:
-g <程序群组名称> 使用程序群组名称,修改所有隶属于该程序群组的程序的优先权
-p <程序识别码> 改变该程序的优先权等级,此参数为预设值
-u <用户名称> 指定用户名称,修改所有隶属于该用户的程序的优先权
(3)在top命令中调整进程的nice值
进入top后按“r” → 输入进程PID → 输入nice值