当 Linux 内核尝试决定哪些运行中的进程可以访问 CPU 时,其中一个需要考虑的因素就是进程优先级的值(也称为 nice 值)。每个进程都有一个介于 -20 到 19 之间的 nice 值。默认情况下,进程的 nice 值为 0。

进程的 nice 值,可以通过 nice 命令和 renice 命令修改,进而调整进程的运行顺序。

nice命令

nice 命令可以给要启动的进程赋予 NI 值,但是不能修改已运行进程的 NI 值。

nice 命令格式如下:

[root@localhost ~]# nice [-n NI值] 命令

-n NI值:给命令赋予 NI 值,该值的范围为 -20~19;

例如:

[root@localhost ~]# service httpd start

[root@localhost ~]# ps -le 丨 grep "httd" | grep -v grep

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

1 S 0 2084 1 0 80 0 - 1130 - ? 00:00:00 httpd

5 S 2 2085 2084 0 80 0 - 1130 - ? 00:00:00 httpd

5 S 2 2086 2084 0 80 0 - 1130 - ? 00:00:00 httpd

5 S 2 2087 2084 0 80 0 - 1130 - ? 00:00:00 httpd

5 S 2 2088 2084 0 80 0 - 1130 - ? 00:00:00 httpd

5 S 2 2089 2084 0 80 0 - 1130 - ? 00:00:00 httpd

#用默认优先级自动apache服务,PRI值是80,而NI值是0

[root@localhost ~]# service httpd stop

#停止apache服务

[root@localhost ~]# nice -n -5 service httpd start

#启动apache服务,同时修改apache服务进程的NI值为-5

[rooteiocdlhost ~]# ps -le | grep "httpd" | grep -v grep

F S UID PID PPID C FRI NI ADDR SZ WCHAN TTY TIME CMD

1 S 0 2122 1 0 75 5 - 1130 - ? 00:00:00 httpd

5 S 2 2123 2122 0 75 5 - 1130 - ? 00:00:00 httpd

5 S 2 2124 2122 0 75 5 - 1130 - ? 00:00:00 httpd

5 S 2 2125 2122 0 75 5 - 1130 - ? 00:00:00 httpd

5 S 2 2126 2122 0 75 5 - 1130 - ? 00:00:00 httpd

5 S 2 2127 2122 0 75 5 - 1130 - ? 00:00:00 httpd

#httpd进程的PRI值变为了75,而NI值为-5

renice 命令

同 nice 命令恰恰相反,renice 命令可以在进程运行时修改其 NI 值,从而调整优先级。

renice 命令格式如下:

[root@localhost ~]# renice [优先级] PID

注意,此命令中使用的是进程的 PID 号,因此常与 ps 等命令配合使用。

例如:

[root@localhost ~]# renice -10 2125

2125: old priority -5, new priority -10

[root@localhost ~]# ps -le | grep "httpd" | grep -v grep

1 S 0 2122 1 0 75 -5 - 113.0 - ? 00:00:00 httpd

5 S 2 2123 2122 0 75 -5 - 1130 - ? 00:00:00 httpd

5 S 2 2124 2122 0 75 -5 - 1130 - ? 00:00:00 httpd

5 S 2 2125 2122 0 70 -10 - 1130 - ? 00:00:00 httpd

5 S 2 2126 2122 0 75 -5 - 1130 - ? 00:00:00 httpd

5 S 2 2.127 2122 0 75 -5 - 1130 - ? 00:00:00 httpd

#PID为2125的进程的PRI值为70,而NI值为-10

如何合理地设置进程优先级,曾经是一件让系统管理员非常费神的事情。但现在已经不是了,如何地 CPU 足够强大,能够合理地对进程进行调整,输入输出设备也远远跟不上 CPU 地脚步,反而在更多的情况下,CPU 总是在等待哪些缓慢的 I/O(输入/输出)设备完成数据的读写和传输任务。

然而,手动设置进程的优先级并不能影响 I/O 设备对它的处理,这就意味着,哪些有着低优先级的进程常常不合理地占据着本就低效地 I/O 资源。

Linux进程优先级取值范围,Linux中使用nice和renice命令:改变进程优先级相关推荐

  1. linux函数 取值溢出,Linux eCryptfs工具parse_tag_3_packet()函数堆溢出漏洞

    发布日期:2009-07-28 更新日期:2009-07-29 受影响系统: Linux kernel 2.6.30.3 描述: ----------------------------------- ...

  2. linux ftp下载文件_Linux系统中10个使用Wget命令下载文件示例

    wget 是一个从网络上自动下载文件的命令行工具,支持通过 HTTP.HTTPS.FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理.它是一个非交互式工具,非常适合通过脚本或者在 ...

  3. double取值范围 java_Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

  4. java中random方法取值范围_Java中的Random()函数

    今天在做Java练习的时候注意到了Java里面的一个随机函数--Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于Random函数的总结: Java中存在 ...

  5. java中random方法取值范围_java中最值的求法,你可能忽略了这种方法了!

    对一批数据进行排序,然后找出其中的最大值或最小值,这是基本的数据结构知识.在Java中我们可以通过编写算法的方式,也可以通过数组先排序再取值的方式来实现.下面以求最大值为例,解释一下多种算法. 自行实 ...

  6. 邮件合并的逆向应用,从多个Word文档中取值到Excel中

    按位置和表格取值到Excel: 将所有参考位置的目标提取出来,导出到Excel工作表中.例如"考试成绩:98.",要取出成绩其位置就是"考试成绩:"之后.句号之 ...

  7. 从多个Word文件中取值到Excel中,整理文件的神器,Word精灵V7.3

    Word精灵V7.3版,包含107个功能 工具网址:http://excelbbx.net/Word.htm 演示一个功能: 从多个Word文件中提取指定的值到Excel中,也可以理解为把多个Word ...

  8. python字典取值_python 字典中取值的两种方法小结

    python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...

  9. 在html中标题字体的最大取值,在HTML中,标题字体标记的最大取值是()

    摘要: 中最人可民法债权请人以申院更理人换管,取值人的管理酬和报费用审查.保物信用信用行尽信后在区状况职调管理及财经营记录对客.中最担的情等进处行查.域的业情务状户所环境和授.所审查况以况.况.,.. ...

  10. java从map取值_java map中怎么通过键取出值?

    展开全部 在java map中取出键值有以32313133353236313431303231363533e59b9ee7ad9431333363396464下两种方法: 1.第一种方法根据键值的名字 ...

最新文章

  1. [导入]关于复制目录架构
  2. html5中表格如何等分,纯css3饼图五等分
  3. 哈工程计算机学院培养方案,哈工程2012年硕士培养方案详解(计算机科学与技术学院).doc...
  4. android注销广播接收器,使用广播接收器 - chuiyuan的个人页面 - OSCHINA - 中文开源技术交流社区...
  5. python如何画出多个独立的图片_python使用matplotlib:subplot绘制多个子图的示例
  6. 小管家进销存_管钱、管货、管顾客,“北漂”京东便利店主点赞掌柜管家
  7. 【Matlab创建word文档,插入图注或表注】
  8. 【全网最简单】给朋友- 制作,微信公众号推送教程
  9. POI设置excel格式为文本格式
  10. java 创建Reader_BufferedReader类的对象建立问题(JAVA语言)
  11. 群晖NAS教程(二十三)、利用Docker安装mysql8,并使用ipv6和域名访问
  12. 【论文阅读】APdrawing GAN (CVPR19)
  13. nas和san网络存储区别_存储区域网络或SAN
  14. xssgame第九关至第十关
  15. 人工智能之知识图谱体系总结
  16. 搜索引擎——新闻搜索引擎
  17. Windows查看端口被占用查找步骤
  18. KalmanFilter
  19. fseek()函数用法
  20. RationalDMIS 2020 AeroTech转盘使用说明

热门文章

  1. FTP已登录,读取目录列表失败
  2. jdbcTemplate注入过程
  3. php中面向对象静态调用,php面向对象中static静态属性和静态方法的调用_PHP
  4. hive根据已有表创建新表_读取Hive中所有表的表结构,并在新Hive库中创建表,索引等...
  5. mysql demo_mysql 查询小demo
  6. bat打包成exe_拜托!看完这篇文章别再问我怎么Python打包成exe了!
  7. sql将null替换为0_Firefox浏览器将被认为包含歧视性的 Master字眼替换为 Primary
  8. 五大列级庄_走进法国波尔多五大一级酒庄
  9. 全国计算机等级考试二级cpp试题,全国高校计算机等级考试(二级C)模拟试题全套.doc...
  10. SLAM--各种开源项目