Linux top 命令使用说明
文章目录
- Linux top 命令使用说明
- 简介
- 基本语法
- 命令选项
- 输出字段解释
- 系统概览区域
- 进程列表字段
- 交互命令
- 使用示例
- 1. 基本使用
- 2. 设置刷新间隔
- 3. 显示指定进程
- 4. 显示指定用户的进程
- 5. 显示完整命令行
- 6. 批处理模式输出
- 7. 按内存使用率排序
- 8. 显示线程信息
- 9. 显示单个 CPU 核心信息
- 10. 自定义显示字段
- 高级用法
- 1. 实时监控特定进程资源
- 2. 导出 top 数据到文件并分析
- 3. 监控多核 CPU 负载
- 4. 高亮显示当前运行的进程
- 5. 调整进程优先级
- 注意事项
- 相关命令对比
Linux top 命令使用说明
简介
top
命令是 Linux 系统中常用的性能分析工具,能够实时动态地显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。它可以帮助用户监视系统的 CPU、内存使用情况,以及各个进程的运行状态,是系统管理员必备的工具之一。
基本语法
# 基本使用
$ top# 带选项使用
$ top [选项]
命令选项
选项 | 描述 | 示例 |
---|---|---|
-d <秒数> | 指定每两次屏幕刷新之间的时间间隔 | top -d 2 |
-p <PID> | 显示指定 PID 的进程信息 | top -p 1234 |
-H | 线程模式,显示进程中的线程 | top -H -p 1234 |
-c | 显示完整命令行而不只是命令名 | top -c |
-i | 忽略闲置和僵死进程 | top -i |
-u <用户名> | 显示指定用户的进程 | top -u root |
-n <次数> | 设置循环显示的次数 | top -n 5 |
-o <字段> | 按照指定字段排序 | top -o %CPU |
-w <列数> | 设置屏幕宽度 | top -w 200 |
-b | 批处理模式,非交互式 | top -b -n 1 > top_output.txt |
-S | 累积模式,显示每个进程的累积 CPU 时间 | top -S |
-1 | 显示每个逻辑 CPU 的详细信息 | top -1 |
-h /-v | 显示帮助信息 | top -h |
输出字段解释
系统概览区域
top
命令的输出分为三个部分:系统概览区域、进程表头和进程列表。以下是系统概览区域的解释:
-
第一行(运行时间和平均负载)
top - 16:52:51 up 5:37, 2 users, load average: 0.31, 0.42, 0.33
16:52:51
: 当前系统时间up 5:37
: 系统已运行时间2 users
: 当前登录用户数量load average: 0.31, 0.42, 0.33
: 系统在过去 1 分钟、5 分钟、15 分钟的平均负载
-
第二行(任务/进程统计)
Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
85 total
: 总进程数1 running
: 正在运行的进程数84 sleeping
: 睡眠状态的进程数0 stopped
: 已停止的进程数0 zombie
: 僵尸进程数
-
第三行(CPU 状态)
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
0.3 us
: 用户空间 CPU 使用率0.3 sy
: 系统空间 CPU 使用率0.0 ni
: 优先级调整过的进程 CPU 使用率99.0 id
: 空闲 CPU 百分比0.0 wa
: 等待 I/O 的 CPU 时间百分比0.0 hi
: 硬件中断处理时间百分比0.3 si
: 软件中断处理时间百分比0.0 st
: 被虚拟机窃取的 CPU 时间百分比
-
第四行(内存使用)
Mem: 1004136k total, 456464k used, 547672k free, 26492k buffers
1004136k total
: 物理内存总量456464k used
: 已使用的物理内存547672k free
: 空闲物理内存26492k buffers
: 缓冲区使用的内存
-
第五行(交换分区使用)
Swap: 1048572k total, 0k used, 1048572k free, 214520k cached
1048572k total
: 交换分区总量0k used
: 已使用的交换分区1048572k free
: 空闲交换分区214520k cached
: 缓存的交换分区
进程列表字段
字段 | 描述 |
---|---|
PID | 进程 ID |
USER | 进程所属用户 |
PR | 进程优先级 |
NI | 进程nice值(优先级调整值) |
VIRT | 进程使用的虚拟内存总量(KB) |
RES | 进程使用的物理内存总量(KB) |
SHR | 进程使用的共享内存总量(KB) |
S | 进程状态(R:运行, S:睡眠, T:停止, Z:僵尸, D:不可中断睡眠) |
%CPU | 进程占用的 CPU 百分比 |
%MEM | 进程占用的内存百分比 |
TIME+ | 进程累计使用的 CPU 时间 |
COMMAND | 进程命令名称或完整命令行 |
交互命令
在 top
命令运行过程中,可以使用以下交互式命令进行操作:
命令 | 描述 |
---|---|
h /? | 显示帮助信息 |
q | 退出 top 命令 |
k | 终止指定 PID 的进程 |
r | 重新设置进程的优先级(nice值) |
s | 改变屏幕刷新间隔时间 |
l | 切换是否显示平均负载和启动时间 |
t | 切换是否显示进程和 CPU 状态信息 |
m | 切换是否显示内存信息 |
c | 切换是否显示完整命令行 |
i | 切换是否显示闲置和僵死进程 |
M | 按内存使用率排序 |
P | 按 CPU 使用率排序 |
T | 按累计 CPU 时间排序 |
N | 按 PID 排序 |
F /f | 添加或删除显示字段 |
O /o | 改变字段显示顺序 |
W | 保存当前设置到配置文件 ~/.toprc |
1 | 显示/隐藏单个 CPU 核心信息 |
E | 切换内存显示单位(KiB 到 EiB) |
H | 切换线程模式 |
> | 向右移动排序列 |
< | 向左移动排序列 |
R | 反向排序当前列 |
使用示例
1. 基本使用
# 启动 top 命令
$ top
2. 设置刷新间隔
# 每 2 秒刷新一次
$ top -d 2
3. 显示指定进程
# 显示 PID 为 1234 的进程
$ top -p 1234
4. 显示指定用户的进程
# 显示 root 用户的进程
$ top -u root
5. 显示完整命令行
# 显示进程的完整命令行
$ top -c
6. 批处理模式输出
# 输出一次 top 信息到文件
$ top -b -n 1 > top_output.txt
7. 按内存使用率排序
# 启动 top 后按 M 键
$ top
# 然后按 M 键
8. 显示线程信息
# 显示进程的线程信息
$ top -H -p 1234
9. 显示单个 CPU 核心信息
# 启动 top 后按 1 键
$ top
# 然后按 1 键
10. 自定义显示字段
# 启动 top 后按 f 键,然后选择要显示的字段
$ top
# 然后按 f 键
高级用法
1. 实时监控特定进程资源
# 结合 watch 命令监控特定进程
$ watch -n 1 'top -b -n 1 -p 1234 | tail -n 1'
2. 导出 top 数据到文件并分析
# 导出 10 次 top 数据
$ top -b -n 10 > top_data.txt
# 使用 grep 和 awk 分析数据
$ grep 'nginx' top_data.txt | awk '{print $9, $10}'
3. 监控多核 CPU 负载
# 启动 top 后按 1 键查看每个核心的负载
$ top
# 然后按 1 键
4. 高亮显示当前运行的进程
# 在 top 交互模式下按 x 键
$ top
# 然后按 x 键
5. 调整进程优先级
# 在 top 交互模式下按 r 键,然后输入进程 PID 和新的 nice 值
$ top
# 然后按 r 键,输入 PID,再输入 nice 值(范围 -20 到 19)
注意事项
top
命令默认按 CPU 使用率排序,按M
键可切换到按内存使用率排序。- 系统平均负载值如果持续大于 CPU 核心数的 0.7 倍,可能表示系统负载过高。
- 僵尸进程(Z 状态)通常不需要手动处理,系统会自动回收。如果大量出现,可能是父进程存在问题。
- 高 CPU 或内存占用的进程可能是性能瓶颈或异常进程,需要进一步分析。
top
命令的输出可能因 Linux 发行版不同而略有差异,具体以实际系统为准。- 使用
W
命令可以保存当前设置到~/.toprc
文件,下次启动时自动加载。
相关命令对比
命令 | 功能 | 特点 |
---|---|---|
top | 实时监控进程资源 | 动态更新,交互式操作 |
ps | 查看进程静态快照 | 一次性显示当前进程状态 |
htop | 增强版进程监控工具 | 界面更友好,支持鼠标操作 |
atop | 高级系统和进程监控 | 提供更详细的系统资源信息 |
glances | 跨平台系统监控工具 | 支持多种输出格式,功能全面 |