Linux top 命令

281 阅读3分钟

top 是 Linux 系统中用于实时监控系统资源使用情况的命令行工具。它动态显示进程的 CPU、内存、负载等关键信息,帮助用户快速识别资源消耗高的进程。以下是对 top 命令的详细解析:


1. 启动 top 命令

在终端输入 top 后,默认界面分为两部分:

  • 顶部区域:系统整体状态概览。
  • 进程列表:按资源使用排序的进程信息。

2. 顶部区域详解

(1) 系统运行时间和负载

top - 14:30:00 up 10 days,  2:30,  2 users,  load average: 0.50, 1.20, 2.00
  • 14:30:00:当前系统时间。
  • up 10 days, 2:30:系统已运行时间。
  • 2 users:当前登录用户数。
  • load average:系统过去 1、5、15 分钟的平均负载。若值接近或超过 CPU 核心数,表示系统繁忙。

(2) 任务(进程)状态

Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
  • total:总进程数。
  • running:正在运行的进程数。
  • sleeping:休眠中的进程数(等待 I/O 或事件)。
  • stopped:被暂停的进程数(如通过 Ctrl+Z)。
  • zombie:僵尸进程数(已终止但未被父进程回收)。

(3) CPU 使用情况

%Cpu(s):  5.6 us,  2.0 sy,  0.0 ni, 92.0 id,  0.4 wa,  0.0 hi,  0.0 si,  0.0 st
  • us:用户空间占用 CPU 百分比(应用程序)。
  • sy:内核空间占用 CPU 百分比(系统调用)。
  • ni:调整优先级的用户进程占用 CPU 百分比。
  • id:空闲 CPU 百分比。
  • wa:等待 I/O 完成的 CPU 时间百分比。
  • hi/si:硬件/软件中断处理时间。
  • st:虚拟机被宿主机占用的时间(虚拟化环境)。

(4) 内存和交换空间

MiB Mem :   7856.0 total,   1024.0 free,   4096.0 used,   2736.0 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   3500.0 avail Mem
  • total/free/used:物理内存总量、空闲量、使用量。
  • buff/cache:缓冲和缓存占用的内存(可快速回收)。
  • Swap:交换空间使用情况。

3. 进程列表字段详解

默认按 CPU 使用率排序,各列含义如下:

列名说明
PID进程 ID。
USER进程所有者。
PR进程优先级(优先级数值,越小优先级越高)。
NINice 值(-20 到 19),影响优先级调整。
VIRT进程使用的虚拟内存总量(包括共享库和交换空间)。
RES进程实际使用的物理内存(单位:KB 或 MB)。
SHR进程使用的共享内存大小。
S进程状态(R=运行, S=休眠, D=不可中断, Z=僵尸, T=停止)。
%CPUCPU 使用率百分比。
%MEM物理内存使用率百分比。
TIME+进程使用的累计 CPU 时间(格式:分:秒.毫秒)。
COMMAND启动命令或进程名称。

4. 常用交互命令

在 top 运行中按下按键执行操作:

按键功能
P按 CPU 使用率排序。
M按内存使用率排序。
N按 PID 排序。
T按运行时间排序。
k终止进程(输入 PID 后回车)。
r调整进程优先级(输入 PID 和 Nice 值)。
z切换颜色显示。
1展开显示所有 CPU 核心的状态。
h显示帮助信息。
q退出 top

5. 常用选项

  1. -d [时间间隔] :设置刷新时间间隔(以秒为单位)。默认是3秒。

    top -d 5
    
  2. -p [PID] :仅监控指定的进程ID。

    top -p 1234
    
  3. -u [用户名] :仅显示特定用户的进程。

    top -u user
    
  4. -b:批处理模式输出。适用于重定向输出到文件或其他命令时。

    top -b -n 1 > output.txt
    
  5. -n [次数] :指定刷新次数,然后退出。常与 -b 结合使用。

    top -b -n 5
    
  6. -H:显示线程信息,而不是进程信息。

    top -H
    
  7. -c:切换显示命令行完整路径和参数。

    top -c
    
  8. -i:忽略闲置或僵尸进程。

    top -i
    
  9. -s:安全模式(禁用交互命令)。

    top -s
    

6. 例子

top -p 进程ID -H 显示该进程下的线程使用cpu信息。

image.png

7、参考:

developer.jdcloud.com/article/313…

jmap 命令详解 jstack命令详解 Linux top 命令