当前位置: 首页 > news >正文

Linux常用命令之top:动态进程排查利器

背景

在运维日常工作中,经常需要排查进程相关问题,就不得说一下top这个常用命令,主要复习相关知识,希望可以帮到大家。

基本信息

时期关键事件意义
1984William LeFebvre 在 BSD 4.4 中创造 top开创了实时系统监控的先河,将管理员从反复执行静态命令中解放出来。
1980s-90s被移植到各种 Unix 和 Linux成为 Unix/Linux 系统管理员不可或缺的标准工具。
Linux 时代基于 /proc 文件系统发展,功能爆炸式增长演化成一个功能极其强大的交互式性能诊断和管理控制台。
现代归属于 procps-ng 套件,面临 htop 等工具的竞争依然是所有系统的预装默认工具,在最小化环境(如容器)中因其零依赖而不可替代。

基本的指标信息

在这里插入图片描述

第 1 行:top - 系统概览
  • top - 11:06:47:当前时间。
  • up 104 days, 18:23:系统已运行时间。这是系统稳定性的第一指标。
  • 3 user:当前登录用户数。
  • load average: 0.01, 0.05, 0.08:过去 1分钟、5分钟、15分钟的系统平均负载。

深入理解:对于单核CPU,1.00 表示刚好满负荷。超过1表示有进程在排队。对于多核CPU,负载值应除以核心数来评估。例如,4核CPU的负载为4.00才算是满负荷。

第 2 行:Tasks - 进程信息
  • total:总进程数。
  • running:正在运行或等待CPU时间片的进程数。
  • sleeping:处于睡眠状态的进程数(等待某事件发生,如I/O)。
  • stopped:被停止的进程数(通常通过 Ctrl+Z 或 kill -STOP)。
  • zombie:僵尸进程数。这是关键故障指标。
    深入理解:僵尸进程是已终止但其父进程尚未回收其资源的进程。少量僵尸通常无害,但数量持续增长表明有应用程序存在 bug,需要排查。
第 3 行:%Cpu(s) - CPU 使用率
  • us (user):用户空间进程占用CPU百分比。
  • sy (system):内核空间进程占用CPU百分比。
  • ni (nice):被调整过优先级的用户进程占用CPU百分比。
  • id (idle):CPU空闲百分比。这是最重要的指标之一,但要注意等待I/O的时间也算空闲。
  • wa (I/O wait):CPU等待I/O完成的时间百分比。这是I/O瓶颈的关键指标。如果此值持续很高,说明磁盘或网络I/O可能成为瓶颈。
  • hi(hardware interrupts):处理硬件中断所花费的CPU时间。
  • si (software interrupts):处理软件中断所花费的CPU时间。
  • st (steal time):在虚拟化环境中,被宿主机(Hypervisor)“偷走”的CPU时间。如果此值较高,说明你的虚拟机正在与其他虚拟机激烈争夺物理CPU资源,在云平台环境中,遇到的情况比较多。
第 4/5 行:KiB Mem & KiB Swap - 内存信息(单位:MB)
  • total:总内存。
  • free:完全未被使用的内存。
  • used:已使用的内存。
  • buff/cache:被用作缓冲区和缓存的内存。
    关键理解:Linux 会利用空闲内存来缓存磁盘数据(cache)和缓冲磁盘读写(buffer),以提升性能。当应用程序需要内存时,这部分内存会被快速回收。因此,评估内存是否充足,不能只看 free,而应主要关注 available(在某些老版本中可能没有,新版本通常有)。
进程列表字段解析(重要!)
  • PID:进程ID。
  • USER:进程所有者。
  • PR (Priority) / NI (Nice):进程优先级。NI 值范围从 -20(最高优先级)到 19(最低)。PR = NI + 20。
  • VIRT (Virtual Memory):进程使用的虚拟内存总量。包括代码、数据、共享库、交换出去的内存等。非常大是正常的。
  • RES (Resident Memory):进程使用的、未被换出的物理内存大小(单位KB)。这是进程实际占用的物理内存,是评估内存占用的核心指标。
  • SHR (Shared Memory):共享内存大小。可能来自共享库等。
  • S (Status):进程状态。
    R = Running / Runnable
    S = Interruptible Sleep
    D = Uninterruptible Sleep(通常与I/O相关,等待磁盘,需要警惕)
    Z = Zombie
    T = Stopped
  • %CPU:进程使用的CPU百分比。注意:在多核CPU上,该值可以超过100%。例如,一个进程完全占满2个核心,其 %CPU 为 200%。
  • %MEM:进程使用的物理内存占总物理内存的百分比。
  • TIME+:进程自启动以来使用的总CPU时间。
  • COMMAND:进程启动命令。默认情况可以当作进程名称来看,在交互页面按c可以把完整命令扩展出来

默认排序通常按 %CPU,你可以通过 Shift + > 或 < 改变排序字段。按一次 Shift + > 到内存,按一次Shift + < 到进程状态。

常用的使用方法

显示所有CPU信息

top(进入交互模式) —> 按数字1 —> 达成目标
在这里插入图片描述

彩色显示,高亮排序的字段信息

top(进入交互模式) —> 依次按 z、b、x —> 达成目标
在这里插入图片描述
参数解释
z:让页面变成彩色显示。
b:加粗字体。
x:高亮显示,排序的列信息。

显示指定用户的进程列表

top(进入交互模式) —> 按u —>输入用户名 —> 达成目标
在这里插入图片描述

在这里插入图片描述

kill掉指定进程(默认 15)

top(进入交互模式) —> 按k —>输入pid —> 达成目标
在这里插入图片描述

显示线程信息

top(进入交互模式) —> 按H —> 达成目标 或者 top -H

top -H -p PID 查看指定pid的线程信息。
在这里插入图片描述

  • PID:此时显示的是每个线程的ID(TID)。
  • USER:线程所有者。
  • %CPU:线程的CPU使用率。
  • %MEM:线程的内存使用率。
  • TIME+:线程占用的CPU时间。
  • COMMAND:线程对应的命令名。按 c 键可切换显示完整命令行,这对于识别具体线程任务非常有帮助。
自定义列信息

top(进入交互模式) —> 按f/F —> 达成目标
在这里插入图片描述
基本操作就是,数字上箭头/下箭头选择字段,d/空格来选择是否展示,右箭头表示字段顺序变更,回车确认,s表示默认排序那个字段,可以在指定字段。

结语

top 命令,作为 Linux 系统监控的“瑞士军刀”,其价值远不止于一个简单的任务管理器。它为我们提供了一个透过命令行洞察系统实时状态的窗口,是性能瓶颈分析、故障排查和资源管理的首要入口。

真正的精通,不在于记住所有交互快捷键,而在于理解其输出背后每一个数字的含义,并能将CPU负载、内存使用、I/O等待等指标相互关联,形成一套完整的诊断思路。

尽管如今有了更多现代化、视觉效果更炫酷的工具(如 htop, glances, btop),但 top 因其极致的通用性和近乎零的依赖,依然是所有运维工程师在最关键、最基础的环境中最为信赖的伙伴。它预装在几乎所有*nix系统上,是您深入系统内核、解决复杂问题的坚实起点。

保持手感,常敲常新。愿您能藉由 top 及其他工具,运筹帷幄,洞悉系统之微末,掌控运维之全局。


文章转载自:

http://p6BwqQBi.bchfp.cn
http://242m5bCG.bchfp.cn
http://YmCXmIKk.bchfp.cn
http://rJlZBujO.bchfp.cn
http://BIgWzjru.bchfp.cn
http://r6eUixkn.bchfp.cn
http://ct4ZFdiH.bchfp.cn
http://WWc9UtQN.bchfp.cn
http://nI6KMIUO.bchfp.cn
http://crU9jo9s.bchfp.cn
http://d7GJNLjN.bchfp.cn
http://gZjXpYJ8.bchfp.cn
http://UbMKuMpQ.bchfp.cn
http://kLqu6pwF.bchfp.cn
http://JunZX55T.bchfp.cn
http://Wz6EbT4o.bchfp.cn
http://JDLRYbeo.bchfp.cn
http://L2mnG2c0.bchfp.cn
http://gJYWlot4.bchfp.cn
http://bWbUDJ9R.bchfp.cn
http://P6HRyTYg.bchfp.cn
http://uUzL0wAX.bchfp.cn
http://L1yVJ6lI.bchfp.cn
http://x2oWX4Gd.bchfp.cn
http://eJnLjLYx.bchfp.cn
http://3icUp1uQ.bchfp.cn
http://mX1rhCmm.bchfp.cn
http://NIx9p8Im.bchfp.cn
http://FXTMxzb1.bchfp.cn
http://bGLrGlKn.bchfp.cn
http://www.dtcms.com/a/378435.html

相关文章:

  • 【Problem】动态规划之跳跃游戏系列
  • Android 相机框架的跨进程通信架构
  • 从零实现成绩管理系统:深入理解 Python 类方法、静态方法和属性封装
  • G1 垃圾收集器深入解析
  • 【Leetcode hot 100】104.二叉树的深度
  • nginx的基础使用
  • AWS 查询 ALB access log
  • 认知语义学对人工智能自然语言处理深层语义分析的影响与启示
  • iText与OpenPDF使用差异及中文处理完全指南
  • 动态规划算法的欢乐密码(五):子数组系列(上)
  • 【国内电子数据取证厂商龙信科技】浅析文件头和文件尾和隐写
  • Gradio全解11——Streaming:流式传输的视频应用(8)——Gemini Live API:实时音视频连接
  • [特殊字符] 玩转 Python 命令行参数:从 `-m` 到 `argparse` 的全攻略
  • [免费]基于Python的Django医院管理系统【论文+源码+SQL脚本】
  • 【音视频】Android NDK 与.so库适配
  • 认识鸿蒙——它不是“安卓换皮”
  • YOLO11目标检测运行推理简约GUI界面
  • 如何在 VSCode 中设置默认浏览器为 Chrome 或 Firefox
  • VSCode设置:解决找不到文件的问题
  • rabbitmq的安装
  • 从拓扑排序看有向图的应用
  • 谷歌浏览器
  • openCV 角点检测与 SIFT 特征提取:原理与实战解析
  • 使用Samba网络磁盘作为MacOS时间机器的远程备份磁盘
  • YOLO + OpenPLC + ARMxy:工业智能化视觉识别、边缘计算、工业控制的“三位一体”解决方案
  • 超声波风向传感器:以科技之翼,捕捉风的每一次呼吸
  • 操作【GM3568JHF】FPGA+ARM异构开发板 使用指南:TF-Card
  • NineData云原生智能数据管理平台新功能发布|2025年8月版
  • 行业学习【电商】:直播电商的去头部化、矩阵号?
  • Kimi-Researcher:月之暗面推出的深度研究AI智能体