性能分析专栏 -- top命令
top命令学习笔记!
top命令简介&用途
简介
top
是 Linux/Unix 系统中用于实时监控系统运行状态的命令行工具。它能够动态显示系统中各个进程的资源占用情况(如 CPU、内存等)。
用途
- 查看系统整体资源使用情况(CPU、内存、交换分区等)
- 实时监控进程运行状态
- 查找占用资源较高的进程
- 杀死异常或无响应的进程
top命令参数
- 显示进程信息
# 只显示进程名
top
- 显示完整命令
# 显示完整命令行,带参数的命令行
top -c
- 以批处理模式显示程序信息
# 会将监控信息以纯文本的方式连续输出到标准输出(通常是终端),
# 而不是像普通 `top` 那样进入交互式的全屏界面。
# 适合重定向和脚本处理:
top -b
# 比如:把当前系统快照保存在文件,便于后续处理
top -b -n 1 > top_snapshot.txt
- 以累积模式显示程序信息
# 显示进程及其所有线程的累计资源消耗,而不是只显示主线程的资源消耗。
# 对于多线程程序,`top -S` 会把所有线程的 CPU 时间加总到主进程上,显示为进程的总消耗
# 注意是大写S
top -S
- 设置信息更新次数
# 非常常用,表示更新两次后终止更新显示
top -n 2
- 设置信息更新时间
# 表示更新周期为3秒
top -d 3
- 显示指定的进程信息
# 显示进程号为139的进程信息,CPU、内存占用率等
top -p 139
top界面说明
系统信息区
如图
- 第一行 uptime:系统运行时间、当前登录用户数、系统平均负载
- 第二行 Tasks:任务总数、正在运行、睡眠、停止、僵尸进程数
- 第三行 %Cpu(s):各类 CPU 使用率(用户空间、系统空间、空闲等)
- 第四行 KiB Mem:物理内存使用情况(总量、已用、空闲、缓存等)
- 第五行 KiB Swap:交换分区使用情况
其中第三行更详细的信息为:
比如说图中的信息:
0.2 us:用户空间进程消耗了 0.2% 的 CPU 时间(比如你运行的应用程序)。
0.2 sy:系统空间进程消耗了 0.2% 的 CPU 时间(比如内核、驱动)。
0.0 ni:nice 值被调整的进程没有消耗 CPU 时间。
99.6 id:CPU 99.6% 的时间是空闲的,说明当前系统负载很低。
0.0 wa:没有 CPU 时间花在等待 I/O 上,说明磁盘、网络等没有瓶颈。
0.0 hi:没有硬件中断消耗 CPU。
0.0 si:没有软件中断消耗 CPU。
0.0 st:没有 CPU 时间被 hypervisor“偷走”,说明不是虚拟机,或者虚拟机资源充足。
实际应用和常见问题定位:
进程信息区
top命令常用快捷键
1
: 监控每个逻辑CPU的状况P
:按 CPU 占用排序M
:按内存占用排序T
:按运行时间排序d
: 重制刷新间隔,默认为3sk
:杀死进程(输入 PID)q
:退出 toph
:帮助信息
tips: 使用快捷键的时候,这里有提示信息,比如这里,我按了d之后,提示输入刷新间隔