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

article/2025/10/3 21:24:23

文章目录

  • 1、概述
  • 2、动态监测进程信息:top命令
    • 2.1、Linux系统的整体情况
    • 2.2、Linux进程的情况
    • 2.3、监控指定进程
  • 3、静态查看进程信息:ps命令
    • 3.1、查看进程的资源占用
    • 3.2、查看父进程ID
    • 3.3、查看指定进程的内存占用
  • 4、结束进程
  • 5、进程优先级
    • 5.1、启动程序时指定优先级
    • 5.2、修改正在运行的进程的优先级
  • 6、补充

1、概述

  • 程序:使用计算机语言编写的 可以实现特定目标或解决特定问题的 代码集合
  • 进程:正在执行的一个程序或命令;每个进程都占用一定的系统资源
  • %CPU:CPU Usage
    The task’s share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time.
    任务占用的CPU时间 占 总CPU时间 的百分比
  • 进程优先级:每个进程都有相应的优先级,优先级决定它何时运行和接收多少 CPU时间
    当CPU负载较高时,进程优先级会显效

2、动态监测进程信息:top命令

  • top命令作用:
    动态监测Linux进程,包括进程号、资源占用
    动态监测Linux系统的资源使用状况,主要包括内存和CPU

2.1、Linux系统的整体情况

第1行(top说明
20:22:19系统的当前时间
up 19 days, 11:06系统的运行时间(本机己运行19天+)
1 user当前登录用户数(1个)
load average: 0.12, 0.12, 0.19系统在最近的1、5、15分钟的CPU平均负载
当CPU是单核的时,该值超过1是高负载
当CPU是四核的时,该值超过4是高负载
第2行(Tasks说明
total系统中的任务总数
running运行中的任务数
sleeping睡眠中的任务数
stopped停止中的任务数
zombie僵尸进程数
第3行(%Cpu(s)全称说明原文
3.2 ususer用户进程的 CPU使用率time running un-niced user processes
6.5 sysystem系统进程的 CPU使用率time running kernel processes
0.0 ninice改变过优先级的用户进程的 CPU使用率time running niced user processes
90.3 ididle空闲CPU占用的 CPU百分比time spent in the kernel idle handler
0.0 waIO-wait等待输入/输出的进程 CPU使用率time waiting for I/O completion
0.0 hi硬件中断请求服务占用的 CPU百分比time spent servicing hardware interrupts
0.0 si软件中断请求服务占用的 CPU百分比time spent servicing software interrupts
0.0 st当有虚拟机时,虚拟CPU等待实际CPU的时间百分比time stolen from this vm by the hypervisor

交互操作键1可查看各CPU情况

第4行(KiB Mem详细链接
内存相关,参考free命令https://yellow520.blog.csdn.net/article/details/118893840
第5行(KiB Swap详细链接
交换内存相关https://yellow520.blog.csdn.net/article/details/124989629

2.2、Linux进程的情况

列名称说明全称
PID进程标识符process identifier
USER进程所属的用户
PR优先级,数值越小优先级越高Priority
NI优先级,数值越小优先级越高,取值范围-20到19,默认0Nice Value
VIRT进程使用的虚拟内存的大小Virtual Memory Size (KiB)
RES非交换的物理内存Resident Memory Size (KiB)
SHR共享内存大小Shared Memory Size (KiB)
S进程状态
D:uninterruptible sleep
R:running
S:sleeping
T:stopped by job control signal
t:stopped by debugger during trace
Z:zombie
Process Status
%CPU进程占用CPU的百分比CPU Usage
%MEM进程占用内存的百分比Memory Usage (RES)
TIME+任务启动后使用的CPU总时间,精度为百分之一秒CPU Time, hundredths
COMMAND命令名称Command Name or Command Line

交互操作键P(大写)可按CPU使用率降序排列

交互操作键M(大写):可按内存使用率降序排列

2.3、监控指定进程

top -p进程号

3、静态查看进程信息:ps命令

  • report a snapshot of the current processes

3.1、查看进程的资源占用

ps aux

列名称说明备注
USER进程所属的用户
PID进程ID
%CPU进程的CPU使用率
%MEM进程的内存使用率
VSZvirtual memory size of the process in KiB (1024-byte units)
进程的虚拟内存占用,单位KB
virtual memory size
RSSthe non-swapped physical memory that a task has used (in kiloBytes)
进程的非交换的物理内存占用,单位KB
resident set size
TTY该进程是在哪个终端上面运作
?:与终端无关
tty1-tty6:本机上面的登入者程序
pts/0等:由网络连接到主机的程序
STAT进程的状态:
R:运作中
S:睡眠中,可被某些讯号唤醒
T:正在侦测 或 停止了
Z:僵尸程序的状态
START进程的启动时间
TIME进程累计的CPU时长
COMMAND命令名称

3.2、查看父进程ID

ps -ef

列名称说明备注
PPID进程的父级进程IDParent Process ID
CCPU的占用率
STIME进程的开始时间start time

3.3、查看指定进程的内存占用

ps aux |grep '进程名称' |grep -v 'grep'

ps aux |grep -E '进程名称|%MEM' |grep -v 'grep'

4、结束进程

  • kill命令:向操作系统内核发送一个信号和目标进程的PID
信号编号(常用)说明备注
9强制结束进程
15正常结束进程默认信号

一行命令根据关键词杀程序

ps -ef | grep 名称 | grep -v grep | awk '{print $2}' | xargs -n1 kill -9

5、进程优先级

使用top查看进程优先级

  • PR优先级,数值越小优先级越高。
  • NI优先级,范围-20~19,数值越小优先级越高。

一个人越是nice,就越绅士,就越礼让,优先级就越低😓

5.1、启动程序时指定优先级

nice -n [NI优先级数字] 程序

例如

vim a.py
#!/usr/bin/python2
from time import sleep
for _ in range(999):sleep(1)
nice -n -3 python a.py

5.2、修改正在运行的进程的优先级

  • renice命令:修改NI优先级
renice [NI优先级数字] 进程号

6、补充

🔉
idleˈaɪd(ə)ladj. 闲置的;v. 闲混;(发动机、车辆)空转
elapseɪˈlæpsv. 消逝;n. 时间的流逝
elapsedɪˈlæpstv. (时间)消逝(elapse 的过去式和过去分词);adj. 过去的
residentˈrezɪdəntn. 居民;adj. 常驻的
debuggerˌdiːˈbʌɡər调试程序
debugˌdiːˈbʌɡvt. 调试;除错
zombieˈzɑːmbi僵尸;麻木迟钝的人
hundredthˈhʌndrədθadj. 第一百的;一百分之一的;n. 第一百,第一百个;百分之一
hypervisorˈhaɪpərvaɪzərn. 超级监督者;管理程序

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

相关文章

linux的nice 命令和renice命令

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

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

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

Java之throw和throws的区别

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

Throw和Throws详解

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

Java异常:throw 和 throws的区别

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

Throws和Throw的区别?

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

再探java基础——throw与throws

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

try catch 和throw以及throws的使用

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

Java异常之throw,throws和Throwable

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

Java throws 使用

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

【JavaSE】throws 异常处理

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

throws异常

在程序开发过程中,程序员会尽量避免错误的发生,但是总会发生一些不可预测的事情,例如除法运算时除数为0 、内存不足、栈溢出等,这些就是异常,java语言提供了异常的处理机制,处理一些不可预期的事情。 使用t…

Elasticsearch之利用bulk提高写入性能(含源码分析)

什么是bulk操作 bulk是批量的意思,也就是把原来单个的操作打包好,通过批量的api提交到ES集群。下面是个示例: 单个操作: PUT my-index-000001/_doc/1 {"timestamp": "2099-11-15T13:12:00","message&…

.NET5必备工具——EF大数据批量处理----Bulk系列

之前做项目的时候,如果在大批量操作数据时,性能不好.因为在框架中使用了EntityFramework,于是就搜索到某著名插件,Z系列。 1.安装 然后在类里面添加引用之后,使用DbContext就可以直接点出来。 2.博客园有人做过对比试验 我们直接拿数据说话吧. EF传统…

初识ElasticSearch(5) -批量操作之bulk | 条件查询 | 其它查询

1. bulk:1.1. bulk语法:1.2. bulk行为-增删改: 2. bulk-index批量插入:3. bulk-update批量修改:4. bulk-delete批量删除:5. _update_by_query条件更新:6. _delete_by_query条件删除:…

mysql bulkupdate_Bulk Upsert for MySQL PostgreSQL

什么是 Upsert "UPSERT" is a DBMS feature that allows a DML statements author to atomically either insert a row, or on the basis of the row already existing, UPDATE that existing row instead, while safely giving little to no further thought to con…

JPA 2.1: Bulk Update and Delete

为什么80%的码农都做不了架构师?>>> JPA 2.1: Bulk Update and Delete In the JPA 2.0 and early version, if you want to execute a bulk updating query, you have to use update or delete clause in JPQL directly. JPA 2.1 introduce new Criteri…

ElasticSearch提供的bulk update性能对比

目的:为了对比update的数据中重复数据对性能的影响。

Java面试智力题逻辑题汇总2021

rand5()能够生成0-4的随机数 rand7()能够生成0-6的随机数 已知rand7()生成rand5() 已知rand5()生成rand7()

面试智力题精选:扑克牌问题

袁方同学在玩扑克牌。这幅扑克牌比较特别,没有花色,只有点数。每张牌的点数是1,2,3,...,20。一共20张牌。袁方把牌洗了很多遍以后,把所有牌正面朝下垒成一堆放在自己手上。他翻第一张牌,发现是1…