Linux 系统管理 : nice & renice 命令详解

nice命令用于以指定的进程调度优先级启动其他的程序。

语法

nice(选项)(参数)

选项

-n:指定进程的优先级(整数)。

参数

指令及选项:需要运行的指令及其他选项。

实例

新建一个进程并设置优先级,将当前目录下的documents目录打包,但不希望tar占用太多CPU:

nice -19 tar zcf pack.tar.gz documents

方法非常简单,即在原命令前加上nice -19。很多人可能有疑问了,最低优先级不是19么?那是因为这个“-19”中的“-”仅表示参数前缀;所以,如果希望将当前目录下的documents目录打包,并且赋予tar进程最高的优先级:

nice --19 tar zcf pack.tar.gz documents

 

详解:

 

[root@www ~]# nice [-n 數字] command
选项与参数:
-n  :后面接一个数值,數值的范围 -20 ~ 19。

例一:用 root 給一个 nice 值为 -5 ,用于执行 vi ,並观察该进程!
[root@www ~]# nice -n -5 vi &
[1] 18676
[root@www ~]# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 18625 18623  0  75   0 -  1514 wait   pts/1    00:00:00 bash
4 T     0 18676 18625  0  72  -5 -  1242 finish pts/1    00:00:00 vi
4 R     0 18678 18625  0  77   0 -  1101 -      pts/1    00:00:00 ps
# 原本的 bash PRI 为 75  ,所以 vi 预设应为 75。不过由于給予 nice  为 -5 ,
# 因此 vi 的 PRI 降低了!但並非降低到 70 ,因为内核还会动态调整!

[root@www ~]# kill -9 %1 <==测试完毕将 vi 关闭

 

如备份工作由于工作相当的耗系統资源, 这个时候就可以将备份的指令之 nice 值调大一些,可以使系统的资源分配的更为公平

 

 

对于普通用户来说,只可以以更低优先级运行命令,更高优先级运行命令需要高级用户权限。

nice命令不允许普通系统用户增加命令的优先级。这是一个安全特性,防止用户以高优先级启动所有命令。

很明显nice命令是为未运行命令指定运行时调度优先级的,如果是已运行的命令则需要renice命令。

renice命令与nice命令用法一样,限制也一样(普通用户只能以更低的调度优先级运行命令),惟一不同就是可以更新正在运行命令的调度优先级。

进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。 

PR 就是 Priority 的简写,而 NI 是 nice 的简写。这两个值决定了PR的值,PR越小,进程优先权就越高,就越“优先执行”。换算公式为:PR(new) = PR(old) + NI

 

 

renice命令可以修改正在运行的进程的调度优先级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。

语法

renice(选项)(参数)

选项

-g:指定进程组id;
-p<程序识别码>:改变该程序的优先权等级,此参数为预设值。
-u:指定开启进程的用户名。

参数

进程号:指定要修改优先级的进程。

实例

将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1:

renice 1 987 -u daemon root -p 32

注意:每一个行程都有一个唯一的id。

详解:

renice  N  [ [进程号] [-u 用户名] [-g 用户组] ] 

 

其中N为-20~19之间的整数,表示进程的优先等级;[进程号]指进程的PID值;[-u]或[-g]用于改变用户或用户组中所有进程执行的优先级。

renice使用进程号来对进程进行指定,而nice命令使用程序名。renice命令的参数N前不需要加上“-”符号,而nice命令的参数N前需要加上“-”符号。

 

renice -5 -p 5200  #将PID为5200的进程的niceness设为-5
renice -5 -u xie   #将属于用户xie的进程的niceness设为-5
renice -5 -g group1 #将属于group1组的程序的niceness设为5

 

例如修改vi进程的优先级,命令行如下:

 
  1. # ps  -l  | grep  vi  
  2. 0 T     0  6087  3796  0  77   0 -  1239 finish pts/1    00:00:00 vi  
  3. # renice  -10  6087  
  4. 6087: old priority 0, new priority -10 

如果重新修改的等级超出最小值,则该进程的优先级取最高等级-20:

 
  1. # renice  -25  6087  
  2. 6087: old priority -10, new priority -20 

如果重新修改的等级超出最大值,则该进程的优先级取最低等级19:

 
  1. # renice  25  6087  
  2. 6087: old priority -20, new priority 19 

例如修改用户teacher1和teacher2所执行进程的优先级为-10,命令行如下:

 
  1. # renice  -10  -u  teacher1  teacher2  
  2. 500: old priority -10, new priority -10  
  3. 505: old priority  0, new priority -10 

如果修改teacher用户组中所有用户执行的进程优先级为-5,命令行如下:

 
  1. # renice -5 -g teacher  
  2. 0: old priority -10, new priority –5 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HarkerYX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值