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

Linux系统top命令详细指南

目录

1. 基本用法

2. 界面详解

2.1 系统概览区

第一行:系统运行时间与负载

第二行:任务(进程)统计

第三行:CPU 使用率(%Cpu(s))

第四行:物理内存使用(MiB Mem)

第五行:交换分区使用(MiB Swap)

2.2 进程详情区

3. 交互式命令

4. 命令行参数

5. 高级技巧

5.1 高亮运行中进程

5.2 筛选进程

5.3 保存列布局

5.4 内存单位切换

5.5 远程监控

6. 实战案例

6.1 定位高CPU占用进程

6.2 监控内存泄漏

6.3 监控系统负载峰值

6.4 容器内进程监控

7. 替代工具推荐


Top (Table of Processes)是 Linux 系统中最常用的实时系统监控工具,能够动态显示系统进程的资源占用情况(CPU、内存、磁盘 I/O 等),是排查性能问题的核心工具之一。它类似于 Windows 的“任务管理器”,但功能更强大、更灵活。

1. 基本用法

直接输入 top 命令启动实时监控界面:

top
  • 默认每 3 秒刷新一次,按q键或Ctrl+C组合键退出。

2. 界面详解

启动 top 后,界面分为两部分:

2.1 系统概览区

top - 15:12:56 up 64 days,  2:30,  2 users,  load average: 0.15, 0.03, 0.08
Tasks: 207 total,   1 running, 206 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.1 us,  2.9 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :   1756.0 total,   100.9 free,    1247.7 used,    407.8 buff/cache
MiB Swap:   1024.0 total,   1024.0 free,      0.0 used.   2590.0 avail Mem
  • 第一行:系统运行时间与负载

    • 15:12:56:当前时间
    • up 64 days, 2:30:系统已运行 64 天 2 小时 30 分钟
    • 2 users:当前登录用户数
    • load average: 0.15, 0.03, 0.08:1分钟、5分钟、15分钟的系统平均负载
      • 负载值 ≈ CPU 核心数 表示满载
      • 超过核心数表示系统过载
  • 第二行:任务(进程)统计

    • 207 total:总进程数
    • 1 running:正在运行的进程数
    • 206 sleeping:睡眠状态的进程数
    • 0 stopped/zombie:停止或僵尸进程(>0 表示异常)
  • 第三行:CPU 使用率(%Cpu(s))

    • us:用户进程占用 CPU 百分比(重点关注
    • sy:系统(内核)占用 CPU 百分比
    • ni:调整过优先级(nice)的进程占用
    • id:空闲 CPU 百分比
    • wa:I/O 等待占用 CPU 百分比(高表示磁盘瓶颈
    • hi:硬件中断
    • si:软件中断
    • st:被虚拟机偷走的时间(仅虚拟化环境)
  • 第四行:物理内存使用(MiB Mem)

    • total:总内存
    • free:完全空闲内存
    • used:已使用内存
    • buff/cache:缓冲区和缓存占用
    • 注意:Linux 会用空闲内存做缓存,所以 free 小 ≠ 内存不足
  • 第五行:交换分区使用(MiB Swap)

    • used > 0 表示物理内存不足,开始使用 Swap应尽量避免
    • avail Mem:可用内存(包括可回收的缓存)

2.2 进程详情区

列名说明
PID进程 ID
PPID父进程ID
USER运行进程的用户
PR优先级(Priority)
NInice 值(负值优先级高,正值低
VIRT虚拟内存使用量(KB/MB/GB)
RES常驻内存使用量(实际物理内存,重点关注
SHR共享内存大小
S进程状态:<br>R=运行, S=睡眠, D=不可中断睡眠(I/O), Z=僵尸, T=停止
%CPUCPU 使用率(可能超过 100%,多核)
%MEM内存使用百分比
TIME+进程累计 CPU 时间(百分之一秒)
COMMAND命令名或命令行

3. 交互式命令

快捷键

功能说明

P

按CPU使用率排序(默认)

M

按内存使用率排序

T

按累计CPU时间排序

N按 PID 排序
d或s修改刷新间隔

k

终止进程(输入PID后选择信号,如15终止)

r

调整进程优先级(nice值,负值提高优先级)

1

数字1)显示多核CPU负载(按逻辑CPU分列)

u

过滤指定用户的进程(如u root

c

显示完整命令行(默认仅显示命令名)

l开启/关闭负载信息显示
m开启/关闭内存信息显示

f

自定义显示字段(添加/删除列,如添加PPIDCOMMAND

z

切换彩色显示

4. 命令行参数

top -d 6               # 设置刷新间隔为6秒
top -p 8888            # 监控指定PID(可多个: -p 999,888)
top -u nginx           # 只显示某用户的进程
top -n 3               # 刷新3次后自动退出
top -b -n 1 > top.log  # 批处理模式(输出到文件)
top -H -p 6789         # 显示特定进程的所有线程
top -o %MEM            # 按内存排序,发现 Java 进程 RES 持续增长,结合 `jstat` 检查堆内存

5. 高级技巧

5.1 高亮运行中进程

按 b 开启/关闭粗体显示(运行状态进程)

5.2 筛选进程

按 o 后输入条件(如 COMMAND=java 过滤Java进程)

5.3 保存列布局

按 f 选择字段 → 按 s 保存配置

5.4 内存单位切换

启动时加 -E(如 top -E m 显示MB,-E g 显示GB)

5.5 远程监控

ssh user@remote_host "top -b -n 1 -o %CPU"  # 远程执行单次top并返回结果
ssh -t user@remote_host "htop"  # 需远程安装htop,交互式远程监控

6. 实战案例

6.1 定位高CPU占用进程

  • 执行top,观察%CPU列。
  • 输入P确保按CPU排序,确认高占用进程。
  • 输入k,根据提示输入PID,尝试终止进程(若为异常进程)。

6.2 监控内存泄漏

  • 执行top,观察%MEM列。
  • 输入M按内存排序,确认内存占用持续上升的进程。
  • 使用pmap <PID>或编程语言自带的内存分析工具进一步诊断。

6.3 监控系统负载峰值

  • 执行top -d 1 -n 60,每1秒刷新一次,持续监控60次。
  • 观察平均负载(load average)是否超过CPU核心数。
  • 结合CPU使用率中的wa值,判断是否为I/O瓶颈或计算密集型任务导致。

6.4 容器内进程监控

# 使用容器短ID获取完整ID
docker inspect --format='{{.Id}}' <短ID或名称># 容器内进程监控
top -p $(cat /sys/fs/cgroup/pids/docker/$(docker inspect --format='{{.Id}}' <短ID或名称> )/tasks | paste -sd,)

7. 替代工具推荐

  • htop:交互更强(支持鼠标操作)

  • atop:记录历史资源数据(持久化监控工具

  • btop:支持更多插件和自定义指标

  • glances:跨平台监控工具

  • nmon:专业级性能监控

http://www.xdnf.cn/news/1313137.html

相关文章:

  • 安卓11 12系统修改定制化_____如何去除安卓11 12的系统签名验证
  • 基于Transformer的机器翻译——模型篇
  • 《后室Backrooms》中文版,购物误入异空间,怪物追逐,第一人称冒险逃生
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • 服务器配置开机自启动服务
  • 线程池与异步编程——语法归纳
  • 存算分离与云原生:数据平台的新基石
  • 机器学习的特征工程(特征构造、特征选择、特征转换和特征提取)详解
  • 探秘gRPC——gRPC原理详解
  • 胶质母细胞瘤对化疗的敏感性由磷脂酰肌醇3-激酶β选择性调控
  • 【CV 目标检测】Fast RCNN模型①——与R-CNN区别
  • 软件需求管理过程详解
  • 11、软件需求工程
  • 基于 LoRA的广义知识蒸馏(GKD)训练
  • Java基础 8.16
  • 一汽红旗7月销量37324辆 同比增长21.1%
  • ESP32 C3 开发板使用教程 01-测试显示屏
  • k8sday08深入控制器(3/3)
  • 【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践00
  • MATLAB基础训练实验
  • XSS攻击:从原理入门到实战精通详解
  • 数据结构初阶(16)排序算法——归并排序
  • Python入门第5课:如何定义和使用函数,提升代码复用性
  • PHP反序列化的CTF题目环境和做题复现第1集
  • 软件的终极:为70亿人编写70亿个不同的软件
  • Sklearn 机器学习 邮件文本分类 加载邮件数据
  • Netty 的 Select/Poll 机制核心实现主要在 NioEventLoop 的事件循环
  • 同创物流学习记录1
  • 【论文阅读】Multimodal Graph Contrastive Learning for Multimedia-based Recommendation