插件窝 干货文章 Linux进程分析:top命令解读

Linux进程分析:top命令解读

进程 百分比 使用 CPU 194    来源:    2025-05-07

Linux进程分析:top命令详解

top命令是Linux系统中最常用的进程监控工具之一,它提供了系统运行的动态实时视图,包括系统负载、进程活动、CPU和内存使用情况等信息。

基本使用

直接在终端输入:

top

top界面主要区域解读

1. 系统汇总信息区(前5行)

top - 15:30:45 up 2 days,  5:12,  3 users,  load average: 0.15, 0.10, 0.05
Tasks: 120 total,   2 running, 118 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.0 sy,  0.0 ni, 96.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8000000 total,  2000000 free,  3000000 used,  3000000 buff/cache
KiB Swap:  2000000 total,  1800000 free,   200000 used.  4500000 avail Mem
  • 第1行:系统时间、运行时间、登录用户数、系统平均负载(1分钟、5分钟、15分钟)
  • 第2行:进程总数、运行中进程数、休眠进程数、停止进程数、僵尸进程数
  • 第3行:CPU使用情况
    • us: 用户空间占用CPU百分比
    • sy: 内核空间占用CPU百分比
    • ni: 用户进程空间内改变过优先级的进程占用CPU百分比
    • id: 空闲CPU百分比
    • wa: IO等待占用CPU百分比
    • hi: 硬件中断占用CPU百分比
    • si: 软件中断占用CPU百分比
    • st: 虚拟机偷取时间百分比
  • 第4行:物理内存使用情况
  • 第5行:交换分区使用情况

2. 进程列表区

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1234 root      20   0  400000  50000   8000 R   5.0  0.6   0:10.23 firefox
5678 mysql     20   0 2000000 500000  20000 S   2.3  6.3  10:23.45 mysqld

各列含义: - PID:进程ID - USER:进程所有者 - PR:进程优先级 - NI:nice值,负值表示高优先级,正值表示低优先级 - VIRT:进程使用的虚拟内存总量(KB) - RES:进程使用的、未被换出的物理内存大小(KB) - SHR:共享内存大小(KB) - S:进程状态(D=不可中断的睡眠,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) - %CPU:上次更新到现在的CPU时间占用百分比 - %MEM:进程使用的物理内存百分比 - TIME+:进程使用的CPU时间总计,单位1/100秒 - COMMAND:命令名/命令行

常用交互命令

在top运行中可以使用以下交互命令:

  • q:退出top
  • h:显示帮助
  • 空格:立即刷新
  • c:切换显示完整命令路径和名称
  • M:按内存使用排序
  • P:按CPU使用排序
  • T:按时间/累计时间排序
  • N:按PID排序
  • R:反向排序
  • k:终止一个进程(输入PID)
  • r:重新设置一个进程的优先级(nice值)
  • z:切换彩色/黑白显示
  • 1:显示所有CPU核心的单独统计
  • Shift + W:保存当前设置到~/.toprc

实用技巧

  1. 批处理模式:将top输出保存到文件

    top -b -n 1 > top_output.txt
    
  2. 监控特定用户进程

    top -u username
    
  3. 设置刷新间隔(例如每2秒刷新):

    top -d 2
    
  4. 只显示特定进程

    top -p PID1,PID2,PID3
    
  5. 结合grep过滤

    top -b -n 1 | grep "process_name"
    

常见问题排查

  1. 高CPU使用率

    • 查看%CPU列,找出占用高的进程
    • 使用straceperf进一步分析
  2. 高内存使用

    • 查看%MEM列和RES列
    • 注意是否有内存泄漏
  3. 僵尸进程

    • 在Tasks行查看zombie数量
    • 通常需要父进程回收或重启相关服务
  4. 高IO等待(wa)

    • 可能磁盘或网络IO瓶颈
    • 使用iotopvmstat进一步分析

top命令是系统管理员和开发人员必备的工具,熟练掌握可以帮助你快速定位系统性能问题。