Linux进程和进程优先级(top+ps+kill+renice+df+free命令)

article/2025/10/3 20:33:33

文章目录

  • 概念
  • Linux下的进程管理命令
    • top命令
    • 系统整体情况
      • 1. 第一行
      • 2. 第二行
      • 3. 第三行
      • 4. 第四行
      • 5. 第五行
      • 6. 多核心CPU查看情况
    • 系统的进程信息
      • 1. 如何查看占用CPU最多的进程
      • 2.如果查看占用内存最多的进程
      • 3. free 查看内存情况
      • 4. df 查看磁盘
      • 5. ps查看系统进程信息
          • ps -aux
      • netstat/ss 查询网络访问信息
    • Kill/killall杀死进程
      • 1. 根据pid杀掉进程
      • 2. 根据进程名杀掉进程
  • 进程的优先级
    • 1. 什么是进程的优先级
    • 2. 查看进程的优先级
    • 3.调整进程优先级
      • 1)使用top命令调整进程优先级
      • 2)使用 renice 命令调整进程优先级
    • 3. 是用 nice 命令调整进程的优先级


概念

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源,程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。
线程和进程可以看看这个博客线程和进程

Linux下的进程管理命令

top命令

语法:top
功能:动态监测CPU信息
常用选项
-p [PID]:通过PID查找指定进程信息
在这里插入图片描述

系统整体情况

1. 第一行

在这里插入图片描述

  • 16:19:07:系统当前时间
  • up 33 days:系统运行时间,机器已经开机33天
  • 3 users :当前登录了三个用户
  • load average:0.27,0。17,0。10:系统在之前 1分分钟,5分钟,15分钟的平均负载。如果cpu是单核,则这个数值超过1就是高负载,如果CPU是2核的,则这个数值超过2就是高负载

2. 第二行

在这里插入图片描述

  • 1 running:正在运行的进程数
  • 104 sleeping:睡眠的进程数
  • 0 stopped:睡眠的进程数
  • 0 zombie:僵尸进程数,如果不是0,则需要手动检查僵尸进程

3. 第三行

在这里插入图片描述

  • Cpu(s):1.3 %us:用户模式占用的 CPU百分比
  • 1.3 %sy:系统模式占用的 CPU百分比
  • 0.0 %ni:改变过优先级的用户进程占用的 CPU百分比
  • 97.3 %id:idle缩写,空闲 CPU 占用的CPU百分比
  • 0.0 %wa:等待输入/输出的进程占用的 CPU百分比
  • 0.0 %hi:硬中断请求服务占用的 CPU百分比
  • 0.0 %si:软中断请求服务占用的 CPU百分比
  • 0.0 %st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟CPU等待实际 CPU 的时间百分比

4. 第四行

在这里插入图片描述

  • Mem:3688712 total:物理内存的总量,单位为KB
  • 1382100 free:已经使用的物理内存数量
  • 450608 used:空闲的物理内存数量
  • 1856004 buff/cache:作为缓冲的内存数量

注意:真正剩余的内存 = free + buff/cache,,真正使用的内存 = used - buff/cache

5. 第五行

在这里插入图片描述

  • Swap:0 total:交换分区(虚拟内存)的总大小
  • 0 used:已经使用的交换分区大小
  • 0 free:空闲交换分区的大小
  • 2973372 avail Mem:可用内存

在Linux操作系统分区时,最少需要3个分区:

  1. /boot:系统分区
  2. swap:交换分区:一般情况下为内存的1~2倍,但尽量不爱超过2G
  3. /分区:也就根分区,所有文件都存在于此

swap分区:就是当计算机的内存不足的时候,系统会自动从硬盘中划分出一块区域充当内存使用

6. 多核心CPU查看情况

如果想同时查看CPU每个核心的运行情况可以,使用 top命令再按交换快捷键 1(数字1)

在这里插入图片描述
通过top命令的整体信息部分,就可以查看服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于CPU核数,说明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

注意:如果1分钟、5分钟以及15分钟全部超过CPU的总核心数(必须引起警觉),这个时候就要查

如果一个总核数=8核心的CPU,理论上平均负载达到16,也还可以坚持很长一段时

系统的进程信息

在这里插入图片描述

  • PID:进程的ID(id是唯一的)
  • PR:进程的优先级(数值越小优先级越高)
  • NI:NICE优先级,数值越小优先级越高,取值范围为 -20~19,默认都是0
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
  • S:进程状态。其中S 表示睡眠,R 表示运行
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程名

1. 如何查看占用CPU最多的进程

交互操作快捷键P,P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列

2.如果查看占用内存最多的进程

查看占用内存最多的进程,使用交互快捷键M(大写):表示将结果按照内存(MEM)从高到低进行降序排列

3. free 查看内存情况

语法:free [选项]
选项:-m:以MB的形式显示内存大小

在这里插入图片描述

4. df 查看磁盘

语法:df [选项]
选项:-h:以较高的可读性显示磁盘剩余空间大小

在这里插入图片描述

  • Filesystem:磁盘名称
  • Size:总大小
  • Used:被使用的大小
  • Avail:剩余大小
  • Use%:使用百分比
  • Mounted on:挂载路径(相当于Windows 的磁盘符)

5. ps查看系统进程信息

语法:ps [选项]
常用选项:
-e:等价于“-A”,表示列出全部(all)的进程
-f:表示full,显示全部的列(显示全字段)
-aux:查看
在这里插入图片描述

  • UID:该进程执行的用户ID
  • PPID:该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
  • C:Cpu的占用率,其形式是百分数
  • STIME:进程启动的时间
  • TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
  • TIME:进程实际使用CPU的时间
  • CMD:该进程的名称或者对应的路径

c常用ps命令其实主要用于查询某个进程的PID或PPID

ps -aux

在这里插入图片描述

  • USER:该 进程 属于哪个用户
  • PID:该进程的ID
  • %CPU:该进程使用掉的CUP资源百分比
  • VSZ:该进程使用掉的虚拟内存(kb)
  • RSS:该进程占用的固定的内存量(kb)
  • TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序
  • STAT:该程序目前的状态,主要有
    STAT:该程序目前的状态,主要的状态有==
    R :该程序目前正在运作,或者是可被运作
    S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
    T :该程序目前正在侦测或者是停止了
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  • START:该 process 被触发启动的时间
  • TIME :该 process 实际使用 CPU 运作的时间
  • COMMAND:该程序的实际指令

netstat/ss 查询网络访问信息

语法:netstat [选项] | grep 进程名称

常用选项:
-t:表示只列出tcp 协议的连接(tcp协议与udp协议)
-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示 10.1.1.10:80
-l:表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接
-p:表示显示发起连接的进程pid 和进程名称

ss基本语法

ss -naltp | grep 进程名称

netstat与ss区别?① netstat信息比较简洁,ss更加丰富 ② ss执行效率比netstat略高

Kill/killall杀死进程

1. 根据pid杀掉进程

语法:kill [信号] PID
作用:kill命令会向操作系统发送一个信号(一般都是发送终止信号)和目标进程的PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作
kill一般结合ps命令一起使用

kill命令用于杀死某个进程,这其实只是其一个功能。kill命令的实质是向进程发送信号

注意:如果没有写信号编号默认就是15

信号编号含义
9杀死进程
15正常结束进程

示例:
使用 kill命令杀死 crond进程

在这里插入图片描述

经常看到kill -9 进程PID,强制杀死某个进程,kill -9 pid

2. 根据进程名杀掉进程

基本语法:
killall [信号编号]进程名称
作用:
杀死一类名称相同的进程
示例:
杀死所有 httpd 的进程

在这里插入图片描述

进程的优先级

1. 什么是进程的优先级

Linux是一个多用户、多任务的操作系统,系统中通常运行着很多进程。哪些进程先运行,哪些进程后运行,就由
进程优先级来控制

什么时候需要用到进程的优先级呢?
当CPU负载过高时,如CPU的使用率>=90%以上。这个时候进程的优先级就会起作用。

2. 查看进程的优先级

PR优先级,数值越小优先级越高
NI 优先级,数字越小优先级越高,可以认为更改(NI = NICE = Nice)

在这里插入图片描述

3.调整进程优先级

1)使用top命令调整进程优先级

  1. 先使用 top 命令获取想要调整的进程信息(PID编号)
    在这里插入图片描述

  2. 运行top命令让后 按小写 r,输入要调整的PID编号
    在这里插入图片描述

  3. 根据提示,重置NICE值
    在这里插入图片描述

  4. 按q退出top模式,然后使用top -p PID编号,只查询某个进程的信息
    在这里插入图片描述

2)使用 renice 命令调整进程优先级

语法:renice [NI优先级设置的数字] 想调整进程的名称

注意:NICE值取值范围-20 ~ 19,不能使用小数

  1. 第一步:使用ps或者top命令获取atd的PID编号
    ps -ef | grep mysql
    在这里插入图片描述

  2. 第二步:使用 renice命令调整 1205的NICE值
    renice 01205
    在这里插入图片描述

  3. 查看优先级
    top -p 1205
    在这里插入图片描述

3. 是用 nice 命令调整进程的优先级

语法:nice [NI优先级设置的数字] 想调整的进程名称
注意:nice 命令只能调整没有运行的程序

  1. 第一步:将程序停止
    使用 kill PID或者 systemctl stop [服务名]

在这里插入图片描述

  1. 第二步:启动并定制优先级
    nice -n [NICE值] [进程名称]

nice命令包含两个功能:① 启动进程 ② 调整进程的优先级

在这里插入图片描述
3. 确认优先级

top -p [PID]

在这里插入图片描述



http://chatgpt.dhexx.cn/article/BJ6N3XVo.shtml

相关文章

Linux常用命令——renice命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) renice 修改正在运行的进程的调度优先级 补充说明 renice命令可以修改正在运行的进程的调度优先级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级&#…

中文NER

1、NER任务简介与业务场景 任务简介: 任务是信息抽取领域内的一个子任务,其任务目标是给定一段非结构文本后,从句子中寻找、识别和分类相关实体,例如人名、地名和机构名称。 业务场景: 命名实体识别技术可用于特定域的…

nice和renice命令详解

进程调度是linux中非常重要的概念。linux内核有一套高效复杂的调度机制,能使效率极大化,但有时为了实现特定的要求,需要一定的人工干预。比如,你希望操作系统能分配更多的CPU资源给浏览器进程,让浏览速度更快、更流畅&…

Reactor

Reactor 初识Reactor ! ! Reactor讲解 Reactor:响应式编程,区别于一般:Client去询问Server是否有变化并拉取数据的模式,响应式编程是后台有数据变化时主动push给订阅者,也就是Publisher-Subscriber模型。 一、特点…

得到c++程序Process ID [getpid()], 调高CPU优先级 [renice]

1. 得到进程ID - pid #include <unistd.h> int pid (int)getpid();std::cout<<"pid: "<<getpid()<<"\n"; C 打印pid和tid_shuai_wow的博客-CSDN博客_c 打印pid获取pid1. 包含头文件#include <unistd.h>2. 在需要打印pid的…

RN(React Native)

RN是React的原生组件库 网址:React Native 中文网 使用React来编写原生应用的框架 一、ReactNative开发环境的搭建 在本机搭建RN项目开发运行环境 —— 3GB ①安装必需的编译软件&#xff1a;Node.js JDK ②安装Android原生App开发软件 —— Android Studio ③使用Android开…

优化Linux系统性能的必杀技:调整进程优先级!学会使用nice命令,让你的系统飞一般的顺畅!

文章目录 前言一. nice命令介绍1.1 nice的介绍1.2 cpu资源的调度1.3 nice是控制内核吗&#xff1f; 二. 语法格式及常用选项三. 参考案例3.1 将ls命令的优先级调整为最高3.2 将 find 命令的优先级调整为最低3.3 如何查看nice值 四. nice和renice的区别总结 前言 大家好&#x…

Linux nice及renice命令使用

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

Linux进程监测和操控之top、ps、kill、nice、renice命令

文章目录 1、概述2、动态监测进程信息&#xff1a;top命令2.1、Linux系统的整体情况2.2、Linux进程的情况2.3、监控指定进程 3、静态查看进程信息&#xff1a;ps命令3.1、查看进程的资源占用3.2、查看父进程ID3.3、查看指定进程的内存占用 4、结束进程5、进程优先级5.1、启动程…

linux的nice 命令和renice命令

二者没有太大的区别&#xff0c;都是用于改变进程的优先级&#xff0c;所谓的优先级就是谁有更大的机会先执行&#xff0c;那么为什么要有nice这个命令呢&#xff1f;nice”是指“niceness”&#xff0c;即友善度&#xff0c;所以这个值越小的话&#xff0c;比如-10&#xff0c…

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

Linux 中的 nice 命令有助于执行具有修改的调度优先级的程序/进程。 它启动具有用户定义的调度优先级的进程。 如果我们给一个进程更高的优先级&#xff0c;那么内核会为这个进程分配更多的 CPU 时间。 而 renice 命令允许您更改和修改已运行进程的调度优先级。 什么是进程 …

Java之throw和throws的区别

throw和throws的区别 共同点区别总结 共同点 两者在抛出异常时&#xff0c;抛出异常的方法并不负责处理&#xff0c;顾名思义&#xff0c;只管抛出&#xff0c;由调用者负责处理。 区别 &#xff08;1&#xff09;throws用于方法头&#xff0c;表示的只是异常的申明&#xf…

Throw和Throws详解

Throw和Throws详解 ​ 1.throw是什么&#xff1f;有什么用&#xff1f; ​ throw是java中关于异常的一种操作&#xff0c;如果在try{}catch{}中使用了throw&#xff0c;就代表自己书写的这个方法&#xff0c;可以自己 处理异常了&#xff0c;就是抛出的一个动作&#xff0c;可…

Java异常:throw 和 throws的区别

throws&#xff1a;用来声明一个方法可能抛出和所有异常的信息&#xff0c;表现出现异常的可能性&#xff0c;但并不一定会发生异常。&#xff08;可以理解为为了预防异常的出现&#xff0c;而用throws提前声明一下&#xff09; throw&#xff1a;指抛出的一个具体的异常类型&…

Throws和Throw的区别?

在初学Java异常时&#xff0c;总是被throws和throw搞晕&#xff0c;今天来理一下它们之间的关系。 1、throws 方法名后面跟上 throws Exception 证明这个方法里的语句可能会发生异常&#xff0c;注意是可能&#xff01;在别处如果调用这个方法时&#xff0c;就必须也抛出异常…

再探java基础——throw与throws

再探java基础——throw与throws 以前虽然知道一些异常的处理&#xff0c;也用过一些&#xff0c;但是对throw和throws区别还是有不太清楚。今天用实例测试一下。 异常处理机制 异常处理是对可能出现的异常进行处理&#xff0c;以防止程序遇到异常时被卡死&#xff0c;处于一…

try catch 和throw以及throws的使用

转载&#xff1a;https://www.cnblogs.com/zhangdaicong/p/6127984.html try-catch和throw,throws的区别 java里的异常多种多样&#xff0c;这是一种非常有用的机制&#xff0c;它能帮助我们处理那些我们未知的错误&#xff0c;在java里&#xff0c;关于异常的有throw throws…

Java异常之throw,throws和Throwable

Java异常处理中有throw开头的三兄弟&#xff0c;分别是throw,throws以及Throwable&#xff0c;那么他们之间到底怎么区分呢&#xff0c;且听我慢慢道来。 Throwable Throwable是一个类&#xff0c;该类被异常类Exception以及错误类Error继承&#xff0c;其主要结构如下&#…

Java throws 使用

在开发中&#xff0c;如果去调用别人写的方法时&#xff0c;是否能知道别人写的方法是否会发生异常&#xff1f;这是很难判断的。针对这种情况&#xff0c;Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常&#xff0c;这样调用者在调用方法时&#xff0c;…

【JavaSE】throws 异常处理

文章目录 1. 基本介绍2. 快速入门案例3. 注意事项和使用细节 1. 基本介绍 如果一个方法(中的语句执行时)可能生成某种异常&#xff0c;但是并不能确定如何处理这种异常&#xff0c;则此方法应显示地声明抛出异常&#xff0c;表明该方法将不对这些异常进行处理&#xff0c;而由…