1.如何让查看linux系统上各程序的优先级
命令如下:
ps -efl 下面这2行是优先等级
top
top命令输出中PR值和NI值有什么不同
NI 是优先值,是用户层面的概念, PR是进程的实际优先级, 是给内核(kernel)看(用)的。
一般情况下,PR=NI+20, 如果一个进程的优先级PR是20, 那么它的NI(nice)值就是20-20=0。
可以通过改变NI来改变PR: PRI(new) = PRI(old) + nice
2. Nice调整限制:
nice 值可调整的范围为 -20 ~ 19 ;
Useful priorities are: 20 (the affected processes will run only when nothing else
in the system wants to), 0 (the ''base'' scheduling priority), anything negative (to make things go very fast).
root 可随意调整自己或他人程序的 Nice 值,且范围为 -20 ~ 19 ;
一般使用者仅可调整自己程序的 Nice 值,且范围仅为 0 ~ 19 (避免一般用户抢占系统资源);
一般使用者仅可将 nice 值越调越高,例如本来 nice 为 5 ,则未来仅能调整到大于 5;
3. Nice调整方法
3.1新执行的指令即给予新的 nice 值
[root@www ~]# nice [-n 数字] command
选项与参数:
-n :后面接一个数值,数值的范围 -20 ~ 19。
用ps -l查的话,里面显示的PRI就是PRI(new),核心会自动调整,不是PRI(old) + nice的值,会调高一点点
3.2 已存在程序的 nice 重新调整
renice [number] PID
4. 设置某用户的所有进程优先级
修改/etc/security/limits.conf, 增加一行
userxxx - nice 19
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
注释:
如果要改nice值的话(就是改优先级),可以用上述一样的命令:
renice -n (nice值) -p (process进程值) :改单一进程优先级;
renice -n (nice值) -g (group组名):改整个组员的优先级;
renice -n (nice值) -u (user用户名):改用户的优先级;