Linux 命令 —— top命令(查看进程资源占用)

文章目录

  • top 命令显示信息介绍
  • top 命令使用

top 命令显示信息介绍

top 命令是 Linux/Unix 系统中常用的进程监控工具,可以实时动态显示系统中各个进程的资源占用情况,包括CPU、内存等。

进入 linux 系统,直接输入 top,回车,就会显示如下所示的信息。下面详细介绍显示内容:
在这里插入图片描述
1、第一行:时间上的统计

top - 15:10:50 up 10 min,1 user,load average: 3.58,3.28,3.01
  1. top - 15:10:50:表示当前系统的时间是15:10:50;

  2. up 10 min:表示系统当前已经运行了10分钟。

  3. user:表示当前登录系统的用户数为1。

  4. load average: 3.58, 3.28, 3.01:系统负载信息,分别表示1分钟、5分钟和15分钟内的平均负载。负载值越高,表示系统资源被占用得越多。

    一般来说,如果1分钟平均负载超过了系统逻辑 CPU 核心数,就说明系统存在性能瓶颈。

什么是平均负载:

  • 平均负载就是单位时间内平均活跃的进程数,包括了正在使用 CPU 的进程、等待 CPU 和 等待 I/O 的进程。和 CPU 使用率并没有直接关系,如 I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定高;CPU 密集型进程,使用大量 CPU 会导致平均负载升高;大量等待 CPU 的进程调度也会导致平均负载升高。

活跃进程:处于可运行状态和不可中断状态的进程:

  • 可运行状态的进程是指正在使用 CPU 资源执行计算任务或者处于就绪队列中等待 CPU 调度器分配 CPU 时间片的进程,也就是 ps 命令看到的处于 R 状态(Running)的进程。
  • 不可中断状态的进程是指正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如正在等待 I/O 操作完成(磁盘读写、网络收发等)。在 ps 命令中看到的D状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。这些进程虽然不会占用 CPU 时间,但也会被算入平均负载计算中。

关注平均负载与 CPU 内核数来分析系统可以存在性能问题,假如平均负载为 2:

  • 在单核 CPU 的系统上,意味着有一半的进程竞争不到 CPU;
  • 在双核 CPU 的系统上,意味着所有的 CPU 都刚好被完全占用;
  • 在多核 CPU(如 4 核)的系统上,意味着 CPU 有 50% 的空闲。

观察 1分钟、5分钟和15分钟内的平均负载。通过分析这三个时间内平均负载,可以得出系统平均负载的趋势信息;

  • 如果 3 个时间段的负载值差异不大,说明系统负载平稳;且负载值都很高,说明系统负载一直很重。
  • 如果 1 分钟负载很高,但 15 分钟负载相对较低,说明系统可能在最近 1 分钟存在短暂的负载高峰,可能负载还会持续增加;如果 1 分钟负载很低,但 15 分钟负载相对较高,说明之前有很大的负载,最近 1 分钟负载在减少。

2、第二行:任务统计

Tasks: 11 total, 1 running,10 sleeping,0 stopped, 0 zombie
  1. 11 total:表示系统中总共有 11 个进程或任务;
  2. 1 running:表示有1个进程正在运行,占用 CPU 资源执行计算任务;(可运行状态)
  3. 10 sleeping:表示有 10 个任务处于"不可中断睡眠"状态。(不可中断状态)
  4. 0 stopped:表示当前系统中有0个进程处于"已停止"状态;
  5. 0 zombie:表示僵尸进程数。僵尸进程是已经终止但父进程未对其进行资源回收的进程,这种进程不会占用系统资源,但会在进程表中保留相关信息。

3、第三行:CPU 统计

%Cpu(s): 3.4 us, 0.0 sy,0.0 ni, 96.6 id, 0.0 wa, 0.0 hi,0.0 si, 0.0 st
  1. 3.4 us:“us” 代表用户模式 (user mode),用户空间占用CPU的百分比。表示有 3.4% 的 CPU 时间被用户进程所占用。
  2. 0.0 sy:“sy” 代表系统模式 (system mode),内核空间占用CPU的百分比。表示没有 CPU 时间被内核进程所占用。
  3. 0.0 ni:“ni” 代表 nice 值被改变的进程占用的 CPU 时间百分比,也就是改变过优先级的进程占用 CPU 的百分比。
  4. 96.6 id:“id” 代表空闲 (idle),空闲 CPU 百分比。表示有 96.6% 的 CPU 时间处于空闲状态。
  5. 0.0 wa:“wa” 代表等待输入/输出的 CPU 时间百分比,IO 等待占用 CPU 的百分比。
  6. 0.0 hi:“hi” 代表硬中断 (hardware interrupt) 占用的 CPU 时间百分比。
  7. 0.0 si:“si” 代表软中断 (software interrupt) 占用的 CPU 时间百分比。
  8. 0.0 st:“st” 代表被虚拟机偷取的 CPU 时间百分比,这个指标主要针对运行在虚拟机上的系统而言。在虚拟化环境中,物理机的 CPU 资源是被分配给多个虚拟机使用的。当一个虚拟机暂时没有使用 CPU 时,可能会将这部分空闲的 CPU 时间分配给其他虚拟机使用,这个时间即为 “st” 部分;对于物理机或者没有运行在虚拟化环境中的系统来说,这个 “st” 指标通常都是 0.0,因为没有发生 CPU 时间被其他虚拟机偷走的情况。

4、第四行:内存统计

KiB Mem : 2097152 total, 757808 free,1191452 used, 147892 buff/cache
  1. 2097152 total:总物理内存。表示系统总共有 2097152 KiB(约2GB)的物理内存。
  2. 757808 free:空闲内存。表示当前系统中还有 757808 KiB 的可用内存,即空闲内存。
  3. 1191452 used:已用内存。表示当前系统中已经有 1191452 KiB 的内存被使用了。
  4. 147892 buff/cache:可用于缓存的内存。表示有 147892 KiB 的内存被用作页缓存和缓冲区。
    页缓存用于缓存文件系统数据,缓冲区用于存储块设备的I/O数据。这部分内存在需要的时候可以很快地被释放回给应用程序使用。

5、第五行:swap交换分区信息统计

交换分区 (Swap) 是操作系统用来扩展内存容量的一种机制。当物理内存不足时,操作系统会将一些不常用的内存页面交换到 Swap 分区,即把一部分硬盘空间虚拟成内存使用。在内存不够的情况下,操作系统先把内存中暂时不用的数据存到硬盘的交换空间,从而解决内存容量不足的情况,为更重要的进程和数据腾出物理内存空间。

KiB Swap: 0 total, 0 free, 0 used, 905700 avail Mem
  1. 0 total:用于交换的总内存。表示系统中没有配置任何交换分区 (Swap) 空间;
  2. 0 free:空闲交换内存;
  3. 0 used:已用交换内存;
  4. 905700 avail Mem:可用物理内存。表示系统中还有 905700 KiB (约885MB) 的可用物理内存。

6、第六行:各进程状态监控

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+  COMMAND
  1. PID (Process ID):进程的唯一标识符;—— 可用于定位和管理特定的进程。

  2. USER:运行该进程的用户(进程所有者);—— 可用于审查用户行为和进程权限。

  3. PR (Priority):表示进程的调度优先级。数值越小,优先级越高;—— 可用于调整进程的重要性和CPU使用情况。

  4. NI (Nice value):nice 值用于调整进程的调度优先级。一般情况下,nice 值越小,优先级越高;—— 可用于调整进程的优先级和资源共享。

  5. VIRT (Virtual Memory Size):表示进程使用的虚拟内存大小;—— 可用于评估进程的内存需求。

  6. RES (Resident Size):表示进程使用的物理内存大小;—— 可用于识别内存密集型进程。
    (对于 Java 进程,包括 Java 堆、方法区、线程栈等 JVM 各个内存区域的总和。JVM 堆内存参数设置只是定义了 Java 堆的最小和最大值,并不等同于 RES 值。RES 值会随着 Java 应用程序的实际内存使用情况而动态变化。)

  7. SHR (Shared Mem):表示进程使用的共享内存大小;—— 可用于优化内存使用。

  8. S (Status):显示进程的状态,常见的状态有:R (Running) - 正在运行、S (Sleep) - 睡眠状态、D (Uninterruptible Sleep) - 不可中断的睡眠状态、Z (Zombie) - 僵尸进程、T=跟踪/停止;—— 可用于识别异常或未响应的进程。

  9. %CPU:表示上次更新到现在进程使用的 CPU 时间占用百分比;—— 可用于识别CPU密集型进程。

  10. %MEM:表示进程使用物理内存的占用百分比;—— 可用于识别内存密集型进程。

  11. TIME+:表示进程运行使用的 CPU 时间累计,精确到百分之一秒(单位1/100秒);—— 可用于监控进程的执行时间和效率。

  12. COMMAND:进程的命令名称。—— 可用于识别进程的功能和用途。

top 命令使用

1、查看所有进程

top

示例:top。显示了所有进程的情况。
在这里插入图片描述

2、查看指定进程的所有线程

top -H -p <pid>
  • -H 选项可以切换 top 命令进入线程模式,这样它就会显示进程内的所有线程,而不是仅显示进程本身。
  • 通过 -p <pid> 选项,可以指定要监控的进程 ID (PID)。

示例:top -H -p 587。显示进程 587 下的所有的线程情况。
在这里插入图片描述

3、排序显示

  • M: 按内存使用排序
  • P: 按 CPU 使用排序
  • T: 按运行时间排序
  • N: 按 PID 排序

示例:按 M 进行内存使用排序。
在这里插入图片描述

4、显示设置

  • E:切换 KiB Mem、KiB Swap 统计数据的内存单位 (KiB/MiB/GiB 等)
  • e:切换 VIRT、RES、SHR 内存单位 (m/g/t 等)
  • x: 高亮正在排序的列
  • y: 高亮运行中的进程

示例:按 E 和 e 切换内存单位。
在这里插入图片描述

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

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

相关文章

2014-2024年腾势D9N7N8EVDMI维修手册和电路图资料线路图接线图

经过整理&#xff0c;2014-2024年腾势汽车全系列已经更新至汽修帮手资料库内&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表…

中国星坤X0800HI系列线对板连接器:创新技术连接,引领智能家居未来!

近日&#xff0c;中国星坤推出的X0800HI系列线对板连接器&#xff0c;凭借其独特的设计和卓越的性能&#xff0c;引起了业界的广泛关注。 X0800HI系列线对板连接器在极小空间内实现了线对板的W-B连接&#xff0c;这不仅解决了传统连接方式中剥线和焊接的繁琐步骤&#xff0c;还…

Seata源码分析 全局事务开启提交回滚流程

文章目录 Seata全局事务源码Seata AT模式的设计思路源码入口TransactionalTemplate开启全局事务TM开启全局事务TC处理TM的请求 全局事务提交微服务端TM发送请求TC处理TM的请求RM处理TC的请求 全局事务回滚TM发送请求TC处理TM的请求RM处理TC的请求 补充知识微服务怎么找TC服务 S…

配置三层链路聚合增加链路带宽并提高可靠性的示例

规格 适用于所有版本的AR路由器。 AR161、AR161W、AR169、AR161G-L不支持该示例。 组网需求 在某小型企业网环境中部署了两台AR路由器Router_1和Router_2&#xff0c;Router_1作为用户接入设备&#xff0c;Router_2作为网络接入设备。为了保证用户的带宽&#xff0c;当用户量…

【Kaggle】练习赛《保险交叉销售的二分类预测》

前言 本篇文章介绍的是Kaggle月赛《Binary Classification of Insurance Cross Selling》&#xff0c;即《保险交叉销售的二元分类预测》。这场比赛非常适合作为机器学习入门者的实践练习。在之前的几期练习赛中&#xff0c;我们从多个角度详细讲解了探索性数据分析&#xff0…

爆火出圈的Robotaxi,会是自动驾驶的最优解吗?

八年前&#xff0c;百度决定投资无人驾驶时&#xff0c;李彦宏说&#xff1a;“它是人工智能最顶级的工程&#xff0c;将彻底改变人类的出行和生活。” 八年后&#xff0c;萝卜快跑从理想变成现实&#xff0c;奔跑在全国各地的街头&#xff0c;诠释了什么叫“科技不该高高在上…

2.javaWeb_请求和响应的处理(Request,Response)

2.请求和响应的处理 文章目录 2.请求和响应的处理一、动态资源和静态资源javax.servlet(包) 二、Servlet体系1.简介2.HttpServlet3.Servlet生命周期 三、Request对象1.ServletRequest1)ServletRequest主要功能有&#xff1a;2)ServletRequest类的常用方法: 2.HttpServletReques…

72B大模型分片部署

一、定义 目的官方教程案例小模型修改device_map 方式二 二、实现 目的&#xff1a; 将72B大模型 部署到2张gpu 显卡中。官方教程 帖子&#xff1a;https://huggingface.co/blog/accelerate-large-models实现 1. 自动部署 model AutoModelForCausalLM.from_pretrained(mod…

JUC 包中的 Atomic 原子类总结

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

【Java数据结构】初始线性表之一:链表

为什么要有链表 上一节我们描述了顺序表&#xff1a;【Java数据结构】初识线性表之一&#xff1a;顺序表-CSDN博客 并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素。 由于其底层是一段连续空间&#xff0c;当在ArrayList任意位置插入或者…

Linux shell编程学习笔记64:vmstat命令 获取进程、内存、虚拟内存、IO、cpu等信息

0 前言 在系统安全检查中&#xff0c;通常要收集进程、内存、IO等信息。Linux提供了功能众多的命令来获取这些信息。今天我们先研究vmstat命令。 1.vmstat命令的功能、用法、选项说明和注意事项 1.1 vmstat命令的功能 vmstat是 Virtual Meomory Statistics&#xff08;虚拟内…

4.作业--Jquery,JS

目录 作业题目&#xff1a;1.使用Jquery完成点击图片变换图片颜色 A图 B代码 HTML的部分 JQ的部分 作业题目&#xff1a;2.使用JS中的DOM操作完成背景颜色渐变方向变换。点击背景&#xff0c;渐变方向发生改变。 A图 B代码 学习产出&#xff1a; 作业题目&#xff1a;1…

封装网络请求 鸿蒙APP HarmonyOS ArkTS

一、效果展示 通过在页面直接调用 userLogin(params) 方法&#xff0c;获取登录令牌 二、申请网络权限 访问网络时候首先需要申请网络权限&#xff0c;需要修改 src/main 目录下的 module.json5 文件&#xff0c;加入 requestPermissions 属性&#xff0c;详见官方文档 【声明权…

深度学习Week20——Pytorch实现残差网络和ResNet50V2算法

文章目录 深度学习Week20——Pytorch实现残差网络和ResNet50V2算法 一、前言 二、我的环境 三、代码复现 3.1 配置数据集 3.2 构建模型 四、模型应用与评估 4.1 编写训练函数 4.2 编写测试函数 4.3 训练模型 4.4 结果可视化 一、前言 &#x1f368; 本文为&#x1f517;365天深…

昇思25天学习打卡营第 12 天 | mindspore 实现 ResNet50 图像分类

1. 背景&#xff1a; 使用 mindspore 学习神经网络&#xff0c;打卡第 12 天&#xff1b;主要内容也依据 mindspore 的学习记录。 2. ResNet 介绍&#xff1a; mindspore 实现 ResNet50 图像分类&#xff1b; ResNet 基本介绍&#xff1a; Residual Networks 是微软研究院 K…

港股指数实时行情API接口

港股 指数 实时 行情 API接口 # Restful API https://tsanghi.com/api/fin/index/HKG/realtime?token{token}&ticker{ticker}指定指数代码&#xff0c;获取该指数的实时行情&#xff08;开、高、低、收、量&#xff09;。 更新周期&#xff1a;实时。 请求方式&#xff1a…

GuLi商城-商品服务-API-属性分组-分组修改级联选择器回显

前端代码:略 后端回显接口: 递归方法: @Override publi

linux进程——父子进程层面的PID,fork的原理与理解

前言&#xff1a;本篇内容主要讲解进程中系统调用fork和父子进程的概念与原理&#xff0c; 想要系统学习linux进程的友友们只管看本篇文章是不行的。 还要学习一些linux进程的周边知识以及linux进程其他方面的知识&#xff0c;博主的linux专栏中已经加入了这些文章方便友友们进…

连锁零售门店分析思路-人货场 数据分析

连锁零售门店分析思路 以下是一个连锁零售门店的分析思路&#xff1a; 一、市场与竞争分析 二、门店运营分析&#xff08;销售分析&#xff09; 三、销售与财务分析 四、客户分析 五、数字化与营销分析 最近帮一个大学生培训&#xff0c;就门店销售分析 &#xff0c;说到门店…

记录些MySQL题集(8)

ACID原则、事务隔离级别及事务机制原理 一、事务的ACID原则 什么是事务呢&#xff1f;事务通常是由一个或一组SQL组成的&#xff0c;组成一个事务的SQL一般都是一个业务操作&#xff0c;例如聊到的下单&#xff1a;「扣库存数量、增加订单详情记录、插入物流信息」&#xff0…