当前位置: 首页 > news >正文

Linux shell编程学习笔记65: nice命令 显示和调整进程优先级

0 前言

我们前面学习了Linux命令ps和top,命令的返回信息中包括优先序(NI,nice) ,我们可以使用nice命令来设置进程优先级。

1 nice命令 的功能、格式和选项说明

1.1 nice命令 的功能

nice命令的功能是用于调整进程的优先级,帮助系统资源的合理分配。

Linux系统后台运行着不少进程,其中有一些进程,例如定期数据备份、自动清理垃圾等等工作,我们都可以通过nice命令调低其执行优先级,从而把硬件等资源留给重要的工作。

优先级范围为-20~19,数字越小,优先级越高,默认为10。

我们可以使用命令nice --help 来查看帮助信息。 

[prupleEndurer @ bash ~ ] nice --help
Usage: nice [OPTION] [COMMAND [ARG]...]
Run COMMAND with an adjusted niceness, which affects process scheduling.
With no COMMAND, print the current niceness.  Niceness values range from
-20 (most favorable to the process) to 19 (least favorable to the process).Mandatory arguments to long options are mandatory for short options too.-n, --adjustment=N   add integer N to the niceness (default 10)--help     display this help and exit--version  output version information and exitNOTE: your shell may have its own version of nice, which usually supersedes
the version described here.  Please refer to your shell's documentation
for details about the options it supports.GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report nice translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'nice invocation'
[prupleEndurer @ bash ~ ] 

1.2 nice命令 的格式

nice [选项] [命令 [参数]...]

1.3 nice命令 的选项说明

选项说明
 -g PGID
 

匹配进程组ID

有些nice版本不支持本选项

-n N

--adjustment=N

将优先级调整为N,-20≤ N ≤19,默认为10
-p PID

匹配进程ID(PID)

有些nice版本不支持本选项

-u UID

匹配用户ID(UID)

有些nice版本不支持本选项

--help显示此帮助并退出
--version输出版本信息并退出

 2 nice 命令实例 

2.1 nice:显示nice命令执行历史

[prupleEndurer @ bash ~ ] nice
0
[prupleEndurer @ bash ~ ] nice top &
[1] 210
[prupleEndurer @ bash ~ ] nice
0[1]+  Stopped                 nice top
[prupleEndurer @ bash ~ ] ps -l
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000     118       0  0  80   0 - 10039 -      pts/3    00:00:00 zsh
4 S  1000     195     118  0  80   0 -  3781 -      pts/3    00:00:00 bash
4 T  1000     210     195  0  90  10 - 14239 -      pts/3    00:00:00 top
0 R  1000     212     195  0  80   0 - 13232 -      pts/3    00:00:00 ps
[prupleEndurer @ bash ~ ] nice
0
[prupleEndurer @ bash ~ ] 

我们第一次执行命令nice,返回信息为0

接着我们执行命令 nice top &,以后台方式、优先级默认为10运行top,返回信息中的210是top命令对应的进程ID(PID)

第二次执行命令nice,返回信息比第一次执行时多了一行内容:

[1]+  Stopped                 nice top

也就是刚才运行的命令。

接下来我们执行命令 ps -l,从命令返回信息中可以看到top命令对应的进程ID(PID)210的NI值为默认值10。

2.2 nice -n 命令:以指定优先级执行命令

[prupleEndurer @ bash ~ ] nice -n 5 topTasks:  13 total,   1 running,  10 sleeping,   2 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
KiB Mem :  3855940 total,  2005076 free,   275256 used,  1575608 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3332552 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                        1 csdn      20   0   40356   5152   3780 S   0.0  0.1   0:00.23 zsh                                                                                            47 csdn      20   0   40156   5104   3844 S   0.0  0.1   0:00.04 zsh                                                                                            73 csdn      20   0   40156   4924   3684 S   0.0  0.1   0:00.04 zsh                                                                                            102 csdn      20   0   15124   3540   3124 S   0.0  0.1   0:00.00 bash                                                                                           116 csdn      30  10   56956   3912   3508 T   0.0  0.1   0:00.00 top                                                                                            118 csdn      20   0   40156   5044   3780 S   0.0  0.1   0:00.04 zsh                                                                                            147 csdn      20   0   40156   4956   3716 S   0.0  0.1   0:00.04 zsh                                                                                            195 csdn      20   0   15124   3464   3048 S   0.0  0.1   0:00.00 bash                                                                                           210 csdn      30  10   56956   3960   3556 T   0.0  0.1   0:00.00 top                                                                                            214 csdn      20   0   40156   4960   3716 S   0.0  0.1   0:00.04 zsh                                                                                            239 csdn      20   0   40156   5044   3780 S   0.0  0.1   0:00.05 zsh                                                                                            293 csdn      20   0   15124   3484   3132 S   0.0  0.1   0:00.00 bash                                                                                           306 csdn      25   5   59472   4384   3840 R   0.0  0.1   0:00.00 top                            

 

我们先执行命令nice -n 5 top,以优先级5来执行top命令

然后我们在top命令显示的信息中,可以看到top命令对应的进程的NI为5

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux文本查看命令
  • 概率论原理精解【1】
  • 基于YOLO8的目标检测系统:开启智能视觉识别之旅
  • 【Linux】Linux的基本使用
  • 开源防病毒工具--ClamAV
  • linux 报错:bash: /etc/profile: 行 32: 语法错误:未预期的文件结束符
  • css性能优化的方法
  • 如何判断国民经济的好坏
  • 北京交通大学《深度学习》专业课,实验3卷积、空洞卷积、残差神经网络实验
  • 基于trace_id实现SpringCloudGateway网关的链路追踪
  • 比较 WordPress 、 Baklib 和 BetterDocs
  • Qt开发网络嗅探器02
  • webSocket模块组件
  • 八股文之java基础
  • python大小写转换、驼峰大小写转换
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • CentOS从零开始部署Nodejs项目
  • ES6系统学习----从Apollo Client看解构赋值
  • Github访问慢解决办法
  • Javascript编码规范
  • JAVA并发编程--1.基础概念
  • OSS Web直传 (文件图片)
  • python_bomb----数据类型总结
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Shadow DOM 内部构造及如何构建独立组件
  • TypeScript迭代器
  • Vue2.x学习三:事件处理生命周期钩子
  • yii2权限控制rbac之rule详细讲解
  • 分享一份非常强势的Android面试题
  • 浏览器缓存机制分析
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 微信小程序:实现悬浮返回和分享按钮
  • 想写好前端,先练好内功
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 赢得Docker挑战最佳实践
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • PostgreSQL之连接数修改
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # Java NIO(一)FileChannel
  • #mysql 8.0 踩坑日记
  • (2)STM32单片机上位机
  • (arch)linux 转换文件编码格式
  • (Git) gitignore基础使用
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表