Linux性能监控速成:3分钟搞懂top命令,轻松揪出系统卡顿元凶!

一、基本功能

top 是 Linux 系统实时性能监控工具,用于动态查看进程资源占用及系统整体状态,类似 Windows 任务管理器。主要功能包括:

  1. 「系统概览」:CPU、内存、交换区使用情况,负载平均值(Load Average)等。
  2. 「进程监控」:按 CPU、内存等指标实时排序进程,显示进程详细信息。
  3. 「交互操作」:支持动态调整显示内容、排序方式及进程管理操作。

    二、界面解析

top 界面分为 「统计信息区」 和 「进程信息区」。

  1. 统计信息区(前五行)
    • 「第一行」(系统状态):
      • 当前时间、系统运行时间、登录用户数。
      • 「Load Average」:1/5/15 分钟的平均任务队列长度。若数值 > 逻辑 CPU 核心数,表示系统过载。
    • 「第二、三行」(CPU 使用):
      • us(用户空间)
      • sy(内核空间)
      • id(空闲)
      • wa(I/O 等待)
      • st(虚拟 CPU 被宿主机占用的时间,虚拟机需重点关注)
    • 「第四、五行」(内存与交换区):
      • Mem:物理内存总量、使用量、缓存
      • Swap:交换区使用情况,若频繁使用可能需优化内存
  2. 进程信息区
    • 「关键列」:
      • PID:进程 ID
      • USER:所有者
      • %CPU/%MEM:CPU/内存占比
      • VIRT(虚拟内存总量)
      • RES(物理内存使用)
      • SHR(共享内存)
      • TIME+:进程累计 CPU 时间
    • 「进程状态」:
      • R(运行)
      • S(睡眠)
      • D(不可中断)
      • Z(僵尸进程)
      • T(停止)

        三、常用参数

| 参数 | 说明 | | :—-: | :—-: | | -d <秒> | 刷新间隔(默认 3 秒) | | -p | 监控指定进程 | | -b | 批处理模式(输出到文件) | | -n | 指定命令的迭代次数 | | -c | 显示完整命令行 | | -H | 显示线程级信息 | 「示例」:

top -d 2 -p 1234    # 每 2 秒刷新,仅监控 PID 1234 的进程
top -b -n 3 > log.txt  # 输出 3 次统计结果到文件

四、交互命令

在 top 界面中,按以下键实时操作:

  • 「排序」:
    • P(按 CPU 使用率)
    • M(按内存使用率)
    • T(按累计 CPU 时间)
    • R(切换升序/降序)
  • 「显示调整」:
    • f:选择显示/隐藏列
    • o:调整列顺序
    • z:切换颜色高亮
    • x:高亮排序列
  • 「进程管理」:
    • k:终止进程
    • r:调整进程优先级(需输入 PID)
  • 「退出」:
    • q 或 Ctrl+C

      五、使用技巧

  1. 「负载分析」:Load Average 除以逻辑 CPU 核心数,若结果持续 >3 需排查性能瓶颈。
  2. 「虚拟化监控」:%st(Steal Time)过高表示虚拟机资源被宿主机抢占。
  3. 「线程模式」:按 H 可查看线程级资源占用,结合 top -H -p 定位多线程问题。
  4. 「批处理模式」:top -b -n 2 适合自动化脚本采集性能数据。

    六、应用场景

  5. 「快速定位高负载进程」:按 P/M 排序,找出 CPU/内存消耗大的进程。
  6. 「监控虚拟机性能」:关注 %st 判断宿主机资源是否不足。
  7. 「排查僵尸进程」:检查 Z 状态进程并终止。

    通过掌握上述内容,可快速使用 top 进行系统性能分析与优化。更多高级用法(如自定义输出字段、多窗口模式)可通过 man top 进一步探索。

原文链接:https://mp.weixin.qq.com/s/5hX4b8MjStf9cdOe7wSKRg