[Linux常用命令] top命令详解 复习/学习笔记一

top命令概述:Linux 系统资源监控的核心工具

0、省流版本,快速了解(详细版本看下文的从一开始的小点)

在Linux终端输入top命令,得到下面的图片。
top命令
以下是对图中 top 命令输出内容每行每列的详细解释:

1.第一行(Mem):

Mem: 283168K used, 2024K free, 205108K shrd, 168K buff, 226696K cached
  • Mem :是 “Memory” 的简写,意为内存 。
  • 283168K used :表示系统中已经被使用的内存大小,这里是 283168KB 。
  • 2024K free :表示当前系统中还空闲着的内存大小,为 2024KB 。
  • 205108K shrd :“shrd” 是 “shared” 的简写,指共享内存的大小,这里是 205108KB ,不过在一些系统中该数据意义可能不明显 。
  • 168K buff :“buff” 是 “buffers” 的简写,代表用来做缓冲的内存大小,为 168KB ,用于临时存储磁盘写入数据等 。
  • 226696K cached :“cached” 表示被缓存使用的内存大小,是 226696KB ,用于缓存从磁盘读取的数据,方便快速再次访问 。

2.第二行(CPU)

CPU: 16.6% usr 25.0% sys 0.0% nic 54.1% idle 0.0% io 0.0% irq 4.1% sirq
  • CPU :代表中央处理器 。
  • 16.6% usr :“usr” 是 “user” 的简写,指用户空间程序占用 CPU 的百分比,这里是16.6%,即用户运行的普通程序消耗的CPU资源比例。
  • 25.0% sys :“sys” 是 “system” 的简写,指内核空间程序占用 CPU 的百分比,为 25.0%,也就是系统内核操作消耗的CPU资源比例。
  • 0.0% nic :一般正常显示为 “0.0% ni” ,“ni” 是 “nice” 的简写,表示低优先级用户空间程序占用CPU的百分比,这里是 0.0%。
  • 54.1% idle :表示 CPU 处于空闲状态的时间百分比,为 54.1%,即 CPU 有这么多时间是没有在处理任务的。
  • 0.0% io :正常显示为 “wa”,“wa”是 “I/O wait” 的简写,指 CPU 等待I/O操作完成所花费的时间百分比,这里是 0.0%,如果该值高说明磁盘等 I/O 设备可能存在瓶颈 。
  • 0.0% irq :“irq” 是 “Interrupt Request” 的简写,指 CPU 处理硬件中断所占用的时间百分比,这里是 0.0% 。
  • 4.1% sirq :“sirq” 是 “Soft Interrupt Request” 的简写,指 CPU 处理软中断所占用的时间百分比,为 4.1% 。

3.第三行(Load average)

Load average: 53.45 53.79 54.31 1/196 1800
  • Load average :意为负载平均值 。
  • 53.45 :这三个数值分别表示过去 1 分钟系统的平均负载 。
  • 53.79 :这三个数值分别表示过去 5 分钟系统的平均负载 。
  • 54.31 :这三个数值分别表示过去 15 分钟系统的平均负载 。
    一般来说,如果平均负载高于系统的 CPU 核心数,就说明系统负载比较高,可能存在性能问题 。
  • 1/196 :“1” 表示当前正在运行的进程数 ,“196” 表示系统中总的进程数 。
  • 1800 :表示系统当前的进程 ID(PID) 。

4.表格表头及各列

 PID   PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 1109   857 root     S     586m210.1   1  8.5 {ai_cpu_tsk[0]} /mnt/bin/sctrl
 1094   857 root     R     586m210.1   1  3.6 {_mstream_proces} /mnt/bin/sctrl
 946     2  root     DW       0  0.0   0  2.5 [kdf_ipp_tsk]

4.1 进程信息总览

上面这两个是由同一父进程(PPID=857)启动的系统进程,属于sctrl程序的不同任务模块,正在占用CPU资源。

4.2 关键指标逐列解析

  • PID :“Process ID” 的简写,即进程 ID,是系统分配给每个进程的唯一标识号码
    • 1109和1094:系统为进程分配的唯一ID,类似我们的“身份证”。
    • 用途:可通过 kill -9 PID 终止程序
  • PPID :“Parent Process ID” 的简写,指父进程 ID ,也就是启动当前进程的进程的 ID
    • 857:这两个进程由同一个父进程(PID=857)创建,类似这个两个进程“父亲的名字”。
    • 用途:若要终止整个程序,需先终止父进程
  • USER :表示运行该进程的用户
    • 进程由超级管理员账号启动,拥有最高权限。
    • 风险:若被恶意利用,可能导致系统崩溃。
  • STAT :“Status” 的简写,代表进程的状态 。常见状态有:
    • 进程1109处于S(Sleeping)休眠状态,正在等待某个事件(如用户输入)唤醒。
    • 进程1094正在R(Running)实时运行,占用CPU资源执行任务。
    • ============================================================
    • R :Running,正在运行的进程 。
    • S :Sleeping,处于休眠状态的进程,可被唤醒 。
    • D :Disk - wait,处于不可中断的睡眠状态,通常是在等待 I/O 操作 。
    • T :Stopped,进程被暂停 。
    • Z :Zombie,僵尸进程,进程已结束但父进程未回收其资源 。
    • DW:内核线程处于不可中断睡眠状态(等待硬件资源),且内存状态特殊(无分页或内核态管理)。
  • VSZ :“Virtual Set Size” 的简写,指进程占用的虚拟内存大小,单位一般是 KB 。
    • 进程1109和1094都是586m21。
    • 进程占用的虚拟内存总量,约为586MB。
    • 注意:虚拟内存包括已分配但未实际使用的空间,不代表真实物理内存占用。
  • %VSZ :表示进程占用虚拟内存占系统总虚拟内存的百分比
    • 进程1109和1094分别是0.1%,0.1%。
    • 进程虚拟内存占系统总虚拟内存的比例。
    • 用途:判断是否存在内存泄漏(若持续增长需警惕)。
  • CPU :表示该进程使用的 CPU 核心数
    • CPU 1
    • 进程当前在第1个CPU核心上运行(编号从0开始)。
    • 提示:多核系统中,可通过taskset命令绑定进程到指定核心。
  • %CPU :表示该进程占用 CPU 的百分比
    • 进程1109和1094分别占用8.5%和3.6%的CPU资源。
    • 警惕:若长期接近100%,可能导致系统卡顿,芯片质量不太行的可能80%就好导致显示掉帧等。
  • COMMAND :显示该进程对应的命令名称,有时候会显示完整的命令路径 。
    • {ai_cpu_tsk[0]} /mnt/bin/sctrl。
    • 进程1094,线程名:ai_cpu_tsk[0],是sctrl程序的AI计算任务(第0个实例)。
    • {_mstream_process} /mnt/bin/sctrl
    • 进程1094,线程名:_mstream_process,是sctrl程序的媒体流处理任务。
    • [kdf_ipp_tsk]
    • 内核线程名称,负责特定的系统任务(如 I/O 调度、设备驱动),属于正常内核组件。
    • 提示:花括号内为线程名,斜杠后为程序路径,[]为内核线程名字

一、功能概述

top 是 Linux 系统中最常用的实时性能监控命令,主要用于动态查看系统资源占用情况,核心功能包括:

  • 实时监控 CPU 状态:统计用户态、内核态、空闲率、I/O 等待等细分指标;
  • 内存与进程管理:查看物理内存 / 交换空间使用量,定位高内存 / CPU 占用的进程;
  • 交互式操作:支持终止进程、调整优先级、自定义监控字段等动态管理功能。

二、适用场景

1. 系统卡顿 / 性能瓶颈定位

当设备出现界面卡帧、响应延迟时,通过top快速判断:

  • 是否存在 CPU 过载(负载平均持续高于核心数);
  • 内存是否耗尽(可用内存 avail Mem 过低);
  • 哪些进程正在疯狂消耗资源(如 %CPU 或 %MEM 异常高的进程)。

2. 日常运维与监控

  • 实时跟踪关键服务(如 Web 服务器、数据库)的资源占用;
  • 批量采集数据(配合 -b 批处理模式),用于性能分析或故障复盘;
  • 排查僵尸进程(zombie)、线程异常等隐蔽问题。

三、核心用法与参数

任何Linux终端的命令支持都是BuysBox,下面是一些通用的基础语法

top [OPTIONS]  
top [-b] [-nCOUNT] [-dSECONDS] [-m]//用于实时展示进程活动,每秒从 /proc 读取进程状态并显示。

常用参数速查表

参数作用描述
-b批处理模式(无交互),适合脚本调用(如日志采集)
-c显示进程完整命令行(默认只显示名称),便于识别真实进程路径
-d sec设置刷新间隔(秒),默认 3 秒(如 -d 5 每 5 秒更新一次)
-h显示进程下的所有线程(需配合 -p 指定进程)
-m以 ‘key’ 形式显示
-n num配合 -b 指定刷新次数(如 -n 3 输出 3 次结果后退出)
-p pid仅监控指定进程(如 -p 1234 只显示 PID 为 1234 的进程)
-u user过滤显示指定用户的进程(如 -u root 仅显示 root 用户的进程)

交互式操作(键盘快捷键)

  • 1:切换 SMP(对称多处理)显示;
  • F:自定义显示字段(如添加 / 隐藏COMMAND、TIME+等列)。
  • H:切换线程显示。
  • K:终止指定进程(输入后需输入 PID),一般按Q按键,使用kill -9 PID
  • M:按内存使用率降序排序
  • N:按pid来进行排序
  • P:按 CPU 使用率降序排序(默认排序)
  • Q,^C:退出top。
  • R:反向排序
  • S:显示线程
  • T:按时间来进行排序

命令执行异常的情况分析

实际操作中,命令可能因系统环境或软件版本差异而执行异常。如图中所示,在终端输入 top -c 后,系统反馈 top: invalid option – ‘c’,表明当前环境下该选项不被支持。进一步查看可知,此系统使用的是 BusyBox v1.24.1 这个多调用二进制工具。BusyBox 集成了简化的命令工具集,功能可能存在裁剪。
BuysBox不支持图片

四、核心用法典型使用例子

在Linux终端输入top命令,得到下面的图片。
第1步,设置查看CPU状态,每1秒刷新一次,不会停止。

top -d 1
top -d 1 -n 3//每秒刷新1次,刷新3次停止

top -d 1进入的画面
第2步,按下H按键显示线程,按照%CPU线程占用 CPU 的百分比 ,从大到小排序。
按下H显示线程
第3步,按下M按键按照VSZ进程占用的虚拟内存大小来进行排序,从大到小排序。
按下M显示虚拟大小
第4步,按下P按键显示线程,按照%CPU进程占用 CPU 的百分比 ,从大到小排序。
按下P显示进程百分比
最后一步,按下Q按键退出top命令。

top -d 1//每秒刷新1次,一直刷新
top -d 1 -n 3//每秒刷新1次,刷新3次停止
top -b//执行这个命令,按下Q退出不了,需要按下ctrl+c才能退出

五、总结

top 是 Linux 系统管理员的 “瑞士军刀”,能快速回答以下核心问题:

  • 系统是否卡顿?—— 看负载平均与 CPU 空闲率;
  • 谁在 “吃资源”?—— 按P/M排序进程列表;
  • 如何快速止损?—— 用k终止异常进程,或用r调整优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值