Linux 下nice/renice命令小结

转载 2012年03月28日 11:06:14

Linux 下nice/renice命令小结

2010-03-30 12:58

1.1.1 nice命令


内核根据进程的nice值决定进程需要多少处理器时间nice值的取值范围是是-20到20一个具有-20 的 nice 值的进程有很高的优先级一个 nice 值为 20 的进程的优先级则很低 

 

1) 用 ps axl 显示所有正在运行的进程的 nice 值 


# ps axl 

F   UID   PID PPID PRI NI     VSZ RSS WCHAN STAT TTY TIME COMMAND 

4     0     1     0 16    0 2172 552 -        S    ? 0:17 init [5] 

1     0     3     1 34 19       0    0 ksofti SN   ? 3:18 [ksoftirqd/0] 

1     0    10     1   5 -10     0    0 worker S<   ? 0:01 [events/0] 

4     0 5145      1 25 10 32124 18592 -       SNs ? 0:08 /usr/bin/python /usr/bin/rhn-applet-gui --sm-client-id default4 

4     0 5147 5142 16      0 3528 604 -        S    ? 0:00 /sbin/pam_timestamp_check -d root 

1   503 17552 4180 16     0 14208 3920 -      S    ? 0:01 /home/www/apache2/bin/httpd -f /home/www/apache2/conf/httpd.conf -k start 

 

2) 如何给一个shell脚本分配一个低的优先级(更高的nice值)? 


在下面的例子里当我在后台启动 nice-test.sh 脚本nice 值为 0 

$ ./nice-test.sh & 

[3] 13009 

$ ps axl | grep nice-test 

0   509 13009 12863 17    0 4652 972 wait S pts/1 0:00 /bin/bash ./nice-test.sh 

[注第六列数值为 0 的是 nice 值]  

现在以不同的 nice 值来执行相同的脚本如下所示: 

$ nice -10 ./nice-test.sh & 

[1] 13016 

$ ps axl | grep nice-test 

0   509 13016 12863 30 10 4236 968 wait  SN pts/1      0:00 /bin/bash ./nice-test.sh 

[注第六列数值为 10 的是该 shell 脚本的 nice 值] 

 

3) 如何给一个shell脚本分配一个高的优先级(更低的nice值)?  

 

下面的例子里分配给 shell 脚本 nice-test.sh 一个"-10"的 nice 值  

$ nice --10 ./nice-test.sh & 

[1] 13021 

$ nice: cannot set priority: Permission denied 

注意只有 root 用户可以设置一个负的 nice 值用 root 用户登录再次尝试注意在下面的nice 命令里的 10 前面有一个双破折号  

# nice --10 ./nice-test.sh & 

[1] 13060 

# ps axl | grep nice-test 

4     0 13060 13024 10 -10 5388 964 wait S< pts/1      0:00 /bin/bash ./nice-test.sh 

[注第六列数值为-10 的是该 shell 脚本的 nice 值]


1.1.2 renice命令


renice 可以给正在运行的进程设置调度优先级 

 

1) 怎样降低一个运行进程的优先级(增加 nice值)? 


下面的例子里一个存在的 shell 脚本运行时的 nice 值为 10. (ps 输出的第 6 列) 

$ ps axl | grep nice-test 

0   509 13245 13216 30 10 5244 968 wait  SN pts/1      0:00 /bin/bash ./nice-test.sh 

为增加 nice 值(因此降低优先级), 按如下方法执行 renice 命令 

$ renice 16 -p 13245 

13245: old priority 10, new priority 16 

$ ps axl | grep nice-test

0   509 13245 13216 36 16 5244 968 wait  SN pts/1      0:00 /bin/bash ./nice-test.sh 

[注现在nice-test.sh (PID 13245)的第 6 列显示新的 nice 值是 16] 

 

2) 怎样增加运行进程的优先级(减少 nice值)?


下面的例子里一个已有的 shell 脚本运行时 nice 值为 10. (ps 输出第 6 列)  

$ ps axl | grep nice-test 

0   509 13254 13216 30 10 4412 968 wait  SN pts/1      0:00 /bin/bash ./nice-test.sh  

为提升其优先级赋予其一个较低的nice值然而只有root可以提升运行进程的优先级否则你会得到以下错误信息 

$ renice 5 -p 13254 

renice: 13254: setpriority: Permission denied 

Login as root to increase the priority of a running 

process 

$ su - 

# renice 5 -p 13254 

13254: old priority 10, new priority 5 

# ps axl | grep nice-test 

0   509 13254 13216 25    5 4412 968 wait     SN pts/1      0:00 /bin/bash ./nice-test.sh 

第 6 列现在显示了一个较低的 nice 值 5(提升的优先级)


--End--

linux-nice命令与renice命令

nice命令:用于调整一个命令的调度优先级。linux系统的调度优先级:调度优先级是内核分配给进程的代表执行先后可能的整数(-20-20) 整数值越小,优先级越高。bash shell默认以优先级0...

改变进程优先级(nice&renice)

ice命令用于调整Linux系统中进程的优先级。 通俗地讲,Linux系统中,进程有-19到19这39个优先级。-19最优先,19最不优先。进程的默认优先级为0。如果希望将进程调整为最优先,则将进程...

Linux命令详解 — nice

【命令】nice — 调整程序运行的优先级 【格式】nice [OPTION] [command [arguments...]] 【说明】 在当前程序运行优先级基础之上调整指定值得到新的程序运行优先级...

Linux改变进程优先级的Nice命令

本文所述Nice与Renice命令已由管理员在Debian与CentOS中测试通过 VPS普遍性能不高,很多人可能有这样一个感受,在执行du、tar等命令时,会造成系统负载飙升,Apache响应缓慢...

linux nice 命令详解

nice :新执行的指令即给予新的 nice 值 [root@www ~]# nice [-n 數字] command 选项与參數: -n :后面接一個數值,數值的范围 -20 ~ 19。 ...

linux进程优先级、进程nice值(转载)

网络收集,自学自用~ 进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把...

Linux C语言库函数参考 — nice

【函 数 名】nice — 调整进程运行的优先级 【函数原型】int nice(int inc); 【相关头文件】unistd.h 【函数说明】 在Linux中,进程运行的优先级分为-20~19等40...

Linux 下nice 函数用法提高一个进程的友善值

Linux不会随意对进程进行调度。事实上,应用程序会被指派优先级,优先级会对进程何时运行以及运行多久造成影响。以往,Unix将优先级成为友善值(nice value),因为友善值背后的概念是通过调低一...
  • coloriy
  • coloriy
  • 2015年10月30日 13:32
  • 1060

每天回顾linux命令(renice)

renice命令renice命令可以修正正在运行的进程的调度优先级。预设是以持续识别码指定程序调整其优先权。也可以用指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权...

fork()、vfork()、clone()的区别

因为生活的复杂,这是一个并行的世界, 在同一时刻,会发生很多奇妙的事情,北方下雪,南方下雨,这里在吃饭,那边在睡觉,有人在学习,有人在运动,所以这时一个 多彩多姿的世界,每天都发生着很多事情,所以要想...
  • gogoky
  • gogoky
  • 2016年05月07日 10:35
  • 1685
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux 下nice/renice命令小结
举报原因:
原因补充:

(最多只允许输入30个字)