top 实时性能监控
2024-02-10 00:00:00
目录:
在终端输入 top 命令按回车,可以看到如下图所示内容,上面部分是系统总体统计信息,下面进程信息列表是每个进程的详细信息。

上面部分: 系统总体统计信息
第一行:任务队列与系统负载(Uptime)
top - 22:31:16 up 109 days, 12:50, 1 user, load average: 0.12, 0.23, 0.12
22:31:16 当前系统时间;
up 109 days, 12:50 服务器已经连续持续运行时间;
1 user 当前登录用户数;
load average: 0.12, 0.23, 0.12 系统在最近1分钟、5分钟、15分钟的平均负载,反映了系统的繁忙程度。通常,如果平均负载值持续超过逻辑 CPU 的核心数,则表明系统可能过载;
第二行:进程(Tasks)摘要
Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
- total:进程总数;
- running:正在运行的进程数;
- sleeping:睡眠(等待事件)的进程数;
- stopped:被停止(如通过 Ctrl+Z)的进程数;
- zombie:僵尸进程数。若非零,表示有进程已终止但其资源未被父进程回收,需要关注;
第三行:CPU(Cpu(s))状态
%Cpu(s): 1.7 us, 0.8 sy, 0.0 ni, 97.3 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
- us (%us):用户空间进程占用 CPU 时间的百分比;
- sy (%sy):内核空间进程占用 CPU 时间的百分比;
- ni (%ni):被调整过优先级(nice值)的用户进程占用的CPU百分比;
- id (%id):空闲 CPU 百分比,值越高系统越空闲;
- wa (%wa):等待 I/O 操作完成的 CPU 时间百分比。如果持续过高(如超过 30%),可能表示存在 I/O 瓶颈;
- hi (%hi):处理硬件中断所占用的时间;
- si (%si):处理软件中断所占用的时间;
- st (%st):在虚拟化环境中,被虚拟机监控程序(Hypervisor)“偷走”的CPU时间百分比;
第四行:物理内存(Mem)使用情况
MiB Mem : 1720.9 total, 96.8 free, 526.4 used, 1097.7 buff/cache
有的机器最前面是 MiB,表示后面 1720.9 的单位是 MB,有的机器前面是 KiB,表示后面的单位就是 KB。
- total:物理内存总量;
- used:已使用的物理内存量;
- free:空闲的物理内存量;
- buffers (buff/cache的一部分):用作内核缓冲区缓存的内存量;
第五行:交换分区(Swap)使用情况
MiB Swap: 1025.0 total, 663.0 free, 362.0 used. 1036.3 avail Mem
- total:交换分区总量;
- used:已使用的交换分区量。如果这个值在持续变化,说明物理内存可能不足,系统正在频繁进行内存和 Swap 的数据交换;
- free:空闲的交换分区量;
- cached (buff/cache的一部分):缓冲的交换区总量,即被换出过但又换入内存、尚未被覆盖的页面大小;
并不是说 free 值越小,表示内存越紧张,可用内存 ≈ free + buffers + cached。
下面部分: 进程信息列表
表格默认按照 CPU 占用率从高到低动态变化。
- PID:process id,进程 ID;
- USER:进程所属用户名,这里的用户名不一定和系统用户名一致;
- PR:进程优先级,数字越小优先级越高;
- NI:Nice值,用于调整进程的静态优先级。范围从-20(最高优先级)到19(最低优先级)。负值表示高优先级;
- VIRT:进程使用的虚拟内存总量(Virtual Memory Size),单位KB,VIRT = SWAP + RES;
- RES:进程使用的物理内存总量(Resident Memory Size),单位KB,RES = CODE + DATA;
- SHR:进程使用的共享内存大小(Shared Memory),单位KB;
- S:进程状态,R=运行,S=睡眠,D=不可中断的睡眠(通常与IO相关),T=停止/跟踪,Z=僵尸进程;
- %CPU:进程占用 CPU 的百分比,在多核系统中,该值可能超过100%(例如,一个进程完全占用两个核心,则显示200%);
- %MEM:该进程使用的物理内存占总物理内存的百分比;
- COMMAND:启动该进程的命令名称或命令行,使用 -c 选项或交互命令 c 可显示完整命令行;
交互命令
在 top 运行界面中,按下特定键可以执行交互操作。
P 按照 CPU 占用率从大到小排序;
M 按照内存使用率从大到小排序;
N 按照进程 ID 从小到大排序;
1(数字键):切换显示所有 CPU 的总体信息与每个逻辑 CPU 的单独信息;
u 随后输入用户名,仅显示该用户的进程,按 = 退出过滤模式;
f 进入字段选择界面,可以自定义显示哪些列;
o 暂停当前界面,按 esc 退出暂停;
q 退出 top 运行界面;
↶ 返回首页 ↶