Linux nice及renice命令使用

引言: linux内核是一个了不起的马戏表演者,它在进程和系统资源之间小心地玩着杂耍,并保持系统的正常运转。同时,内核也很公平,它将资源公平地分配给各个进程。但是,如果用户需要给一个重要进程提高优先级、或是降低优先级,该怎么办呢?答案是需要由用户来为内核制定进程的优先级。这里对nice及renice命令做一个基本的介绍。


一、nice命令

1.1、基本介绍

图1、nice命令man手册截图(不完整)

  nice命令可以修改进程的优先级,进而调整进程调度。nice值的范围是[-20, 19], -20表示进程的最高优先级,19表示进程的最低优先级。Linux进程的默认nice值为0。使用nice可调整进程的优先级,这样调度器就会依据进程优先级,为其分配CPU资源。

1)、sleep 200&后,ps -el | grep sleep抓取,无nice命令,优先级数值为0

图2、进程优先级NI默认值为0

2)、nice sleep 200&后,ps -el | grep sleep抓取,优先级NI数值为10

图3、nice命令将NI默认调整为10

3)、nice -N sleep 200&,即在默认值0基础上加N,ps -el | grep sleep抓取

图4、非管理员可将NI值调整为0-19任意值

4)、nice –N sleep 200&,仅管理员可在默认值0基础上加 -N,ps -el | grep sleep抓取

图5、仅管理员可以拉高优先级
1.2、使用场景

  在实际应用中,如果要运行一个CPU密集型程序,最好通过nice命令来启动它,这样可以保证其他进程获得更高的优先级,即使服务器或台式机在负载很重的情况下, 也可以快速响应。

1.3、测试实例

  下面的测试代码,是一个完全抢占CPU的程序,直接启动或nice调整优先级后启动,使用top观测其CPU占有率,验证结论。因为笔记本电脑是四个CPU,需要拉起来至少五个进程,才可以看到效果。

 /********************************************
*内容:模拟一个一直抢占CPU的进程,测试nice命令
*时间:2018.03.19
*问题:
**********************************************/#include<stdio.h>int main(void)
{
    while(1);
    return 0;}

图6、NI值高(优先级低)的进程CPU占有率低

二、renice命令

2.1、基本介绍

图7、renice命令man手册截图(不完整)

  renice命令是与nice关联的一个命令,由re两个字母就知道可以重新调整进程执行的优先级,可以指定群组或者用户名调整优先级等级,并修改隶属于该群组或者用户的所有程序优先级。等级范围为[-20,19]。同样仅系统管理员可以拉高优先级。nice在进程拉起时调整,renice在进程执行时调整。

2.2、使用场景

  一个紧急进程,需要更多CPU资源时,可以拉低之前运行进程的优先级。

2.3、测试实例

图8、renice调整优先级

三、其他与进程优先级相关的系统调用

  linux下与进程优先级相关的系统调用,均在/usr/src/linux-headers-4.4.0-31/include/linux,sched.h文件夹内。包括内容有:

nice()、设置进程的优先级
sched_setscheduler()设置进程调度策略
sched_getscheduler()获取进程调度策略 等等


参考资料:
1、linux man手册
2、公众号:Linux中国:《使用nice、cpulimit和cgroup限制cpu占用率》

纠错与建议
邮箱:db_hebut@163.com


Linux nice及renice命令使用相关推荐

  1. linux renice命令,Linux nice和renice命令教程(7个示例)

    Linux nice和renice命令教程(7个示例) Linux命令行的威力可以从以下事实来衡量:您甚至可以使用命令行工具轻松调整进程的调度优先级. 是的,这是可能的,在本教程中,我们将讨论如何使用 ...

  2. Linux nice及renice命令使用-验证篇

    本文转载自:https://blog.csdn.net/XD_hebuters/article/details/79619213 Linux nice及renice命令使用 引言: linux内核是一 ...

  3. Linux 中的 renice 命令详解及C/C++代码实现

    Linux 中的 nice 命令有助于执行具有修改的调度优先级的程序/进程. 它启动具有用户定义的调度优先级的进程. 如果我们给一个进程更高的优先级,那么内核会为这个进程分配更多的 CPU 时间. 而 ...

  4. 在linux下nice用法,Linux下nice/renice命令小结

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

  5. linux进程cpu资源分配命令nice,renice,taskset

    http://www.51testing.com/html/07/n-222407.html 进程cpu资源分配就是指进程的优先权(priority).优先权高的进程有优先执行权利.配置进程优先权对多 ...

  6. linux renice命令,Linux操作系统的renice命令详解

    Linux操作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux.下面由学习啦小编为大家整理了Linux操作系统的知识点总结的相关知识,希望对大家有帮助! Linux操作系统的ren ...

  7. linux命令优先级设置,linux renice命令参数及用法详解(linux修改程序运行优先级命令)...

    linux renice命令参数及用法详解(linux修改程序运行优先级命令) 发布时间:2012-07-21 12:45:32   作者:佚名   我要评论 renice指令可重新调整程序执行的优先 ...

  8. linux线程优先级和nice值,如何使用nice和renice命令设置Linux进程优先级

    在本文中,我们将简要介绍内核调度程序 (也称为进程调度程序 )和进程优先级 ,这些主题超出了本指南的范围. 然后,我们将深入了解一些Linux进程管理 :了解如何运行具有修改优先级的程序或命令,还可以 ...

  9. linux进程资源分配命令,linux进程cpu资源分配命令nice,renice,taskset

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

最新文章

  1. 用动图讲解分布式 Raft
  2. python运行非常慢的解决-python执行太慢
  3. 【转】推荐计算机科学类的经典书籍 3
  4. 推荐阅读:变异检测到底应该用什么软件?
  5. Bootstrap手机网站开发案例
  6. 《信息检索》第8讲 毕业论文学习指导(资源及预习材料)
  7. Spring远程调用技术1-RMI
  8. java算法提高求最大值_藍橋杯 算法提高 求最大值
  9. RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x
  10. 华为高管揭秘公司不上市的原因;微信回应「花钱就能查到聊天记录」;马斯克删除「超苹果只要几个月」评论 | 极客头条...
  11. CMU 15-213 Introduction to Computer Systems学习笔记(7) Machine-Level Programming-Data
  12. ZYNQ图像处理(7)——sobel边缘检测
  13. 深入浅出的理解频谱泄露
  14. 【路径规划】FMM快速行进法船舶路径规划【含Matlab源码 2291期】
  15. QQ欢乐斗地主心得体会 (三):高倍场攻略
  16. 没解锁的一加手机刷Recovery的方法
  17. 计算机游戏制作零基础教程,一个人、零基础,一天内学会独立开发出电脑和手机游戏?视频教学...
  18. 多项式回归(PolynomialFeatures)
  19. Java web实习总结
  20. 揭开神奇数字“142857”隐藏着惊天秘密

热门文章

  1. Testing ovn manually based on LXD (by quqi99)
  2. 中兴通讯招聘测评答题技巧,真题解析(附真题)
  3. Vue3引入阿里巴巴矢量多彩图标库(下载至本地引入)
  4. Springboot整合Redis(RedisConfig等工具类编写)
  5. Stable Diffusion配置要求,显卡推荐
  6. linux nightshift调整,我为何放弃 Night Shift,重新拥抱 f.lux
  7. 欧拉版本登录vsftp服务报错530(Login incorrect)问题现象分析及解决
  8. .线性回归(Linear Regression)
  9. html 字段唯一性校验,使用ModelForm校验数据唯一性
  10. ISO26262功能安全 故障分类