Linux之进程管理相关命令之四
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之进程管理相关命令之四相关的知识,希望对你有一定的参考价值。
Linux之进程管理(2)相关命令之四
设置或调整进程优先级命令: nice rnice
nice 命令
nice - run a program with modified scheduling priority
运行一个程序时修改调度其进程优先级
格式及用法:
nice [options] [command [args]]
-n # :#表示要设置此程序nice值,-20到19,值越下,优先级越高
注:-20到19的每个nice值分别对应(Centos5中为100-139,CentOS6中为0-39)40个优先级值,而优先级值越高,nice值越小,对应的进程就越优先运行,且占用更多的CPU运行资源空间。当然,还有实时优先级,也就是当优先级相同时,还会通过实时优先级来比较,实时优先级值为99-0,其中值越大,对应的优先级越高。
案例:
#在pts/0终端中打开一个nice值为20的vim进程
[[email protected] ~]# nice -n 20 vim file.txt
#切换到pts/1终端上去查看其nice值
[[email protected] ~]# ps axo pid,comm,ni | grep ‘\<vim‘ 46853 vim 19
解析:这里为什么会显示19,因为nice值规定最小为-20,最大为19,所有设置nice高于最大值或者低于最小值,系统都会认为其为默认最大值或最小值。
#打开两个后台vim进程,nice值都为-10
[[email protected] ~]# nice -n -10 vim file1 & [1] 46941
#打开第二个的时候,第一个进程被停止
[[email protected] ~]# nice -n -10 vim file2 & [2] 46942 [1]+ Stopped nice -n -10 vim file1
#此时查看jobs作业队列中信息
[[email protected] ~]# jobs [1]- Stopped nice -n -10 vim file1 [2]+ Stopped nice -n -10 vim file2
解析:+表示占用队列中。说明,此时vim在同一终端优先存储2号作业在内存的数据划分。
#查看其优先级和nice值
#两值的prioity值和nice值都一样
[[email protected] ~]# ps -C vim -o pid,comm,ni,pri PID COMMAND NI PRI 46941 vim -10 29 46942 vim -10 29
注意:这里的prioity值并不是上面说的nice值对应的40种优先级
rnice 命令
用法选项:
rnice -n prioity PID #表示对应PID进程的原prioity值+指定的prioity值=新的nice值
rnice prioity PID #表示对应PID进程的指定的prioity值-原prioity值=新的nice值
注:无论那种方式,普通用户自能调高自己进程的 nice值。
案例:
#重新设置第二个vim,及PID为46906的进程的nice
[[email protected] ~]# renice -n 20 `pgrep -f ‘^vim[[:space:]].*2‘` 46942 (process ID) old priority -10, new priority 19
解析:这里显示了一段信息,说新的nice值为19,为此进程原来的priority值(29)加上设置的nice值,及29+(-10)=19。
#再次查看两个vim进程的优先级及nice值
[[email protected] ~]# ps -C vim -o pid,cmd,comm,ni,pri PID CMD COMMAND NI PRI 46941 vim file1 vim -10 29 46942 vim file2 vim 19 0
解析:因为vim file2进程的nice值为19,nice值越大,优先级值越小。
测试普通用户只能调大自己进程的nice值
#切换到普通用户
[[email protected] ~]# su - hadoop Last login: Wed Sep 7 21:47:06 EDT 2016 on pts/2
#开启nice值为10的vim进程
[[email protected] ~]$ nice -n 10 vim file1 & [1] 47037
#查在后台作业存在刚才的进程
[[email protected] ~]$ jobs [1]+ Stopped nice -n 10 vim file1
#查看vim进程nice值及优先级值
[[email protected] ~]$ ps axo pid,comm,ni,pri,rtprio | grep vim 47037 vim 10 9 -
#调整nice值为当前优先级+(-9),及9-9=0
[[email protected] ~]$ renice -n -9 47037 renice: failed to set priority for 47037 (process ID): Permission denied
解析:进程原来nice值为10,如果设置为0就相当于提供了优先级,而作为普通用户,是无法与其他用户的进程抢占优先级的。
#那么不能调低,把自己nice值直接设置为29-10=19,提高nice值
[[email protected] ~]$ renice 29 47037 47037 (process ID) old priority 10, new priority 19
解析:nice值为友好值,及只能牺牲自己进程的优先级来为其它用户的进程提供更多的CPU资源空间。
本文出自 “孟天霸-IT的垃圾回收站” 博客,谢绝转载!
以上是关于Linux之进程管理相关命令之四的主要内容,如果未能解决你的问题,请参考以下文章