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 | 进程优先级(优先级数值,越小优先级越高)。 |
| NI | Nice 值(-20 到 19),影响优先级调整。 |
| VIRT | 进程使用的虚拟内存总量(包括共享库和交换空间)。 |
| RES | 进程实际使用的物理内存(单位:KB 或 MB)。 |
| SHR | 进程使用的共享内存大小。 |
| S | 进程状态(R=运行, S=休眠, D=不可中断, Z=僵尸, T=停止)。 |
| %CPU | CPU 使用率百分比。 |
| %MEM | 物理内存使用率百分比。 |
| TIME+ | 进程使用的累计 CPU 时间(格式:分:秒.毫秒)。 |
| COMMAND | 启动命令或进程名称。 |
4. 常用交互命令
在 top 运行中按下按键执行操作:
| 按键 | 功能 |
|---|---|
| P | 按 CPU 使用率排序。 |
| M | 按内存使用率排序。 |
| N | 按 PID 排序。 |
| T | 按运行时间排序。 |
| k | 终止进程(输入 PID 后回车)。 |
| r | 调整进程优先级(输入 PID 和 Nice 值)。 |
| z | 切换颜色显示。 |
| 1 | 展开显示所有 CPU 核心的状态。 |
| h | 显示帮助信息。 |
| q | 退出 top。 |
5. 常用选项
-
-d [时间间隔]:设置刷新时间间隔(以秒为单位)。默认是3秒。top -d 5 -
-p [PID]:仅监控指定的进程ID。top -p 1234 -
-u [用户名]:仅显示特定用户的进程。top -u user -
-b:批处理模式输出。适用于重定向输出到文件或其他命令时。top -b -n 1 > output.txt -
-n [次数]:指定刷新次数,然后退出。常与-b结合使用。top -b -n 5 -
-H:显示线程信息,而不是进程信息。top -H -
-c:切换显示命令行完整路径和参数。top -c -
-i:忽略闲置或僵尸进程。top -i -
-s:安全模式(禁用交互命令)。top -s
6. 例子
top -p 进程ID -H 显示该进程下的线程使用cpu信息。