在Linux系统中,查看负载和详细信息,最常用的命令是 top,它能提供动态、全面的系统概览。此外,还有几个命令可以从不同角度提供信息。

👑 主力工具:top - 全方位的动态监控

top 是Linux下最常用的性能分析工具,能实时显示系统整体状态和各个进程的资源占用。

直接在终端输入 top 即可进入交互界面。

输出信息解读

top 的输出主要分为两部分:

1. 统计信息区 (前5行)
这是系统的整体概况,关键信息如下:

  • 第1行:系统概览:显示了当前时间系统已运行时间当前登录用户数系统平均负载
    • load average: 三个数值分别代表过去1分钟、5分钟、15分钟的平均负载。这个值需要结合CPU核心数来看,若长期超过CPU核心数,通常意味着系统过载。安全阈值建议为 CPU核心数 × 0.7
  • 第2行:进程状态:显示了进程总数及各种状态的进程数量。zombie (僵尸进程) 数量应特别关注,过多则需排查。
  • 第3行:CPU使用率:这是分析性能瓶颈的核心。
    • us (用户空间):用户进程消耗的CPU占比。
    • sy (系统内核):内核消耗的CPU占比。
    • id (空闲):空闲CPU百分比。
    • wa (I/O等待):等待磁盘I/O操作的时间占比。如果这个值持续偏高(如 > 30%),通常意味着磁盘I/O是瓶颈。
  • 第4、5行:内存状态:显示了物理内存 (MiB Mem) 和交换分区 (MiB Swap) 的总量、已用、空闲等信息。

2. 进程信息区
列出了当前消耗资源的具体进程,包含 PID (进程ID)、USER (用户)、%CPU (CPU使用率)、%MEM (内存使用率)、COMMAND (命令名) 等关键列。

top 常用交互操作

进入 top 界面后,可以按以下快捷键进行排序和操作:

  • P:按 CPU 使用率 降序排列(大写P)。
  • M:按 内存使用率 降序排列(大写M)。
  • q:退出 top 界面。

📋 其他常用查看命令

  • uptime:最快速的概览。显示系统运行时间和1、5、15分钟的平均负载。
    $ uptime
     16:16:52 up 1:13, 1 user, load average: 0.01, 0.00, 0.00
    
  • w:显示登录用户及其活动,首行信息与 uptime 相同。
  • cat /proc/loadavg:直接查看内核提供的负载数据。除了三个负载值,还显示运行/总进程数等。
    $ cat /proc/loadavg
    1.02 0.89 0.65 2/985 4210
    

🔍 进阶分析工具

top 显示系统负载高时,可用以下工具进一步定位原因:

  • vmstat:查看系统综合性能。重点关注 r (运行队列) 和 b (阻塞进程) 列,以及 wa (I/O等待) 和 us/sy CPU时间。
    $ vmstat 1
    
  • mpstat:多核CPU分析。查看每个CPU核心的使用率,判断负载是否均匀。
    $ mpstat -P ALL 1
    
  • pidstat:按进程查看详细资源使用。可查看特定进程的CPU、内存、I/O等统计信息。
    $ pidstat -u 1  # 查看CPU
    $ pidstat -r 1  # 查看内存
    $ pidstat -d 1  # 查看磁盘I/O
    
  • iotop:磁盘I/O分析。实时查看哪些进程在进行大量的磁盘读写操作。
    $ sudo iotop -o # -o 只显示有I/O操作的进程
    
  • sar:历史数据回溯。sar 是强大的历史性能数据收集工具,可用于事后分析。
    $ sar -q  # 查看平均负载历史
    $ sar -u  # 查看CPU使用率历史
    
  • htoptop 的增强版。界面更友好,支持鼠标操作,但通常需要单独安装。
    $ htop