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

news2024/11/25 21:16:05

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 exit

NOTE: 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 top

Tasks:  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM 单片机裸机任务调度框架

前言&#xff1a; 在没有使用操作系统的情况下&#xff0c;一个合理的裸机任务调度方式&#xff0c;可以更好的提供数据的处理&#xff0c;和用户体验&#xff0c;有多种任务调度的方式。 方案 1&#xff1a; 从上到下的任务调度方式&#xff0c;C语言程序的代码是在main函数…

重生之我在学数据结构——队列

一.队列的概念 队列是一种先进先出(First In First Out &#xff0c;FIFO)的数据结构&#xff0c;可以简单理解为排队的概念。在队列中&#xff0c;数据项按照插入的顺序排列&#xff0c;并且只能在队列的一端插入&#xff08;称为队尾&#xff09;&#xff0c;在另一端删除&a…

Vue项目实现单点登录(SSO)的逻辑和基本流程

项目集群如果一个一个登录会非常麻烦&#xff0c;尤其是一些大企业或者多项目使用一套体系数据的环境中&#xff0c;这时候登录中心也就应用而生&#xff0c; 今天简单说一下vue sso的实现思路&#xff0c;vue项目实现单点登录&#xff08;SSO&#xff09;通常涉及以下几个步骤…

JVM调优:根据JVM自带工具定位问题(jps、jstat、Visual VM的使用)

JVM调优步骤 发现问题、定位问题、解决问题 发现问题 常见问题如下 GC频繁CPU负载过高内存溢出&#xff08;OOM&#xff09;内存泄露死锁程序响应时间较长 用JDK自带命令调优工具定位问题 jps&#xff08;java process status&#xff09;:查看正在运行的Java进程 基本语…

图解正激和Buck AC/DC转换

所谓正激式 正激方式是构造较简单&#xff0c;容易控制&#xff0c;非常普遍的方式之一。 其特征是输出功率比反激方式大&#xff0c;但必须加装电感和续流二极管&#xff08;转流二极管&#xff1a;D2&#xff09;。此外&#xff0c;和反激式相同&#xff0c;能利用光耦合器…

将半自动化标签绘制在原图上

用yolov8的推理,做了半自动化标签处理。 yolo的标签格式是: 标签 + 每个顶点的坐标 比如: 第一个数字0是类别,后面是每个顶点的坐标,(x,y)这样的。 而且可能是多行的 所以,要把标签画在原图上,看看打的对不对。 画标签到原图上.py import os import cv2 import n…

K3s部署及研究

这里写自定义目录标题 K3s和K8s的部署及研究Kubernetes (K8s)K3s使用场景总结1、备份系统自带yum源配置文件2、进入 /etc/yum.repos.d3、删除文件4、设置5、缓存 K3s和K8s的部署及研究 K3s 和 K8s&#xff08;Kubernetes&#xff09;是两个相关但不同的容器编排平台。以下是对…

43 华三AC登录Web页面

一 无线上WEB页面 1 创建vlan 56 [AC-KongZhi]vlan 56 2 退出 [AC-KongZhi-vlan56]quit 3 进入vlan三层口 配置IP地址 [AC-KongZhi]interface Vlan-interface 56 [AC-KongZhi-Vlan-interface56]ip address 192.168.56.55 24 4 在AC控制器与Host主机的接口上能通关vlan 5…

基于Nginx搭建RTMP流媒体服务器视频无法保存

文章目录 基于Nginx搭建RTMP流媒体服务器安装Nginx-RTMPNginx 配置文件 视频无法保存 基于Nginx搭建RTMP流媒体服务器 安装Nginx-RTMP 要实现RTMP流媒体服务器需要安装Nginx-RTMP模块 已有Nginx安装Nginx-RTMP模块 sudo apt update sudo apt install libnginx-mod-rtmp可能会…

心动小站Ⅰ--矢量数据库:塑造 AI 技术的新时代

前言 随着专家预测的采用率不断提高以及教育资源的引入&#xff0c;矢量数据库将在塑造下一个 AI 技术时代中发挥关键作用。矢量数据库相对于传统数据库的优势越来越明显&#xff0c;使其成为 AI 和机器学习应用不可或缺的工具。以下是矢量数据库受到关注并有望彻底改变 AI 技…

Leetcode - 周赛406

目录 一&#xff0c;3216. 交换后字典序最小的字符串 二&#xff0c;3217. 从链表中移除在数组中存在的节点 三&#xff0c;3218. 切蛋糕的最小总开销 I 四&#xff0c;3219. 切蛋糕的最小总开销 II 一&#xff0c;3216. 交换后字典序最小的字符串 本题要求交换一次相邻字符…

接口自动化测试框架实战-0-项目功能概览

熟悉我CSDN的朋友们应该知道&#xff0c;之前已经更新了requests、pytest、allure2、yaml、jenkins、postman等基础知识的合集。相信大家对接口测试已经有了全面的认识&#xff0c;现在应该迫不及待地想要一个实战项目了。接下来的文章中&#xff0c;我们将把这些知识点串联起来…

数据结构C++——栈

文章目录 一、定义二、ADT三、栈的描述方法3.1 数组描述3.1.1 派生arrayList3.1.2 定制数组arrayStack3.2 链表描述3.2.1 派生chain3.2.2 定制数组LinkedStack四、应用4.1 括号匹配4.2 汉诺塔4.3 列车车厢重排4.4 迷宫老鼠一、定义 DEF. 栈(stack)是一个线性表,其插入(也称…

Window环境下MySQL管理

1、MySQL服务启用和停止 图形化界面管理 使用键盘组合键&#xff08;Win R&#xff09;打开运行对话框&#xff0c;在对话框中输入services.msc并点击确定。 这里可以看到服务名称为MySQL84并处于正在运行的状态。 选中后右键可以进行暂停、停止、重启等操作。 命令提示符管理…

python--16 GUI编程1

GUI编程简介 主流3大GUI框架 框架名称说明Tkinter一个轻量级的跨平台图形用户界面&#xff08;GUI&#xff09;开发工具&#xff0c;是Tk图形用户界面工具包标准的Python接口Kivy基于OpenGL ES 2&#xff0c;能够让使用相同源代码创建的程序能跨平台运行。这个框架是事件驱动…

LLaMA 背景

什么是LLaMA&#xff1f; 模型介绍&#xff1a;LLaMA是Meta开发的语言模型&#xff0c;旨在推动开放科学和人工智能的实践。 参数范围&#xff1a;这些模型的参数数量从7B到65B不等&#xff0c;覆盖了不同规模的需求。 训练数据&#xff1a;LLaMA模型是在数万亿个公开数据集的…

2024视频改字祝福 豪车装X系统源码uniapp前端源码

源码介绍 uniapp视频改字祝福 豪车装X系统源码 全开源,只有uniapp前端&#xff0c;API接口需要寻找对应的。 创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝福视频不再难&#xff01; 想要为你的朋友或家人送上一份特别的祝福…

Spring Boot 日志 (初级)

什么是日志呢&#xff1f;其实就是一条条的打印语句&#xff0c;我们就可以根据打印出来的日志&#xff0c;去分析程序存在的问题等。虽然作为后端开发人员&#xff0c;日志并不是那么重要&#xff0c;但是在学习的过程中&#xff0c;也是比较重要的&#xff0c;可以使用在我们…

OpenCV分水岭算法watershed函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 我们将学会使用基于标记的分水岭算法来进行图像分割。我们将看到&#xff1a;watershed()函数的用法。 任何灰度图像都可以被视为一个地形表…

vue项目实战速查记录

1.图片下载到本地 2.本地静态文件访问 3.元素大小相同,相互覆盖 1.图片下载到本地 实现原理:创建a标签,利用a标签下载属性. download(){const link document.createElement(a);link.href "图片地址";link.setAttribute(download, name);document.body.ap…