linux renice命令参数及用法详解--linux修改程序运行优先级命令(2)
日期:2011-07-26
点击:253
来源: 未知
分享至:
* 一般使用者的 nice 值为 0 ~ 19 ;
* root 可用的 nice 值为 -20 ~ 19 ;
* 一般使用者仅可将 nice 值越调越高,如果本来 nice 为 5 ,则未来仅能调整到大于 5 的 nice ;
* 一般使用者仅能调整属于自己的程序的 nice 值。
这也就是说,要调整某个程序的优先执行序,就是‘调整该程序的 nice 值’啦!那么如何给予某个程序 nice 值呢?有两种方式,分别是:
* 一开始执行程式就立即给予一个特定的 nice 值:用 nice 指令;
* 调整某个已经存在的 PID 的 nice 值:用 renice 指令。
# nice
[root@linux ~]# nice [-n] command
参数:
-n :后面接一个数值,数值的范围 -20 ~ 19。
范例:
范例一:用 root 给一个 nice 植为 -5 ,用于执行 vi ,并观察该程序!
[root@linux ~]# nice -n -5 vi &
[1] 19542
[root@linux ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 18851 18827 0 77 0 - 1302 wait pts/0 00:00:00 su
4 S 0 18852 18851 0 76 0 - 1349 wait pts/0 00:00:00 bash
4 T 0 19542 18852 0 72 -5 - 1063 finish pts/0 00:00:00 vi
4 R 0 19543 18852 0 77 0 - 1110 - pts/0 00:00:00 ps
就如同前面说的, nice 是用来调整程序的执行优先顺序!这里只是一个执行的范例罢了! 通常什么时候要将 nice 值调大呢?举例来说,系统的背景工作中, 某些比较不重要的程序之进行:例如备份工作!由于备份工作相当的耗系统资源, 这个时候就可以将备份的指令之 nice 值调大一些,可以使系统的支援分配的更为公平!
# renice
[root@linux ~]# renice [number] PID
参数:
PID :某个程序的 ID 啊!
范例:
范例一:以上面 nice 范例中 ps -l 的结果,将 18852 那个 PID 修改 nice 为 10
[root@linux ~]# renice 10 18852
18852: old priority 0, new priority 10
[root@linux ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 18851 18827 0 77 0 - 1302 wait pts/0 00:00:00 su
4 S 0 18852 18851 0 85 10 - 1349 wait pts/0 00:00:00 bash
4 R 0 19593 18852 0 87 10 - 1111 - pts/0 00:00:00 ps
如果要调整的是已经存在的某个 process 的话,那么就得要使用 renice 了。使用的方法很简单, renice 后面接上数值及 PID 即可。因为后面接的是 PID ,所以您务必要以 ps 或者其他程序观察的指令去找出 PID 才行啊!
刚好,由上面这个范例当中我们也看的出来,虽然修改的是 bash 那个 PID 为 18852 的程序, 但是该程序所触发的 ps 指令当中的 PID 同样的也有一个 nice = 10 的结果喔! 瞭解了吧?整个 nice 值是可以在父程序 --> 子程序之间传递的呢!
另外,除了 renice 之外,其实那个 top 同样的也是可以调整 nice 值的! top 也是可以调整已经存在的某个 process 的 nice 喔!