功能
显示当前系统正在执行的进程的相关信息,包括进程ID、 内存占用率 、CPU占用率等
option 使用参数
-b 进入批处理模式 相当于不停地执行top命令显示信息
-c 显示完整的command 位于信息的最后一列
-i <时间> 设置间隔时间 如-i 5设置5秒钟刷新一次top信息
-u <用户名> 显示指定用户的信息
-p <进程号> 显示指定进程的信息
-n <次数> 循环显示的次数
读者可以使用man top或者top -help查看完整的参数列表。
例图
说明
第一行:
13:40:29 — 当前系统时间
10 day,2:32 — 机器从开机到目前为止运行的时长
20 users — 登陆的用户有20个
load average — 分别对应1mins,5mins,15mins的负载情况
(根据一定的算法得到的值,load average/cpu数量>=5说明系统超负荷)第二行
Tasks 系统进程数
total — 当前系统进程269个
running — 正在运行的1个
sleeping — 睡眠的268个
stopped — 停止的0个
zombie — 僵尸进程0个第三行
0.1% us — 用户空间占用CPU的百分比
0.0% sy — 内核空间占用CPU的百分比
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比第四行
Mem 物理内存
total — 物理内存总量 8GB
free — 空闲的内存
used — 正在使用的内存
buff/cache — 缓存的内存
(used表示现在系统内核控制的内存数,free表示还未进入内核控制的内存数,used还包括了停止使用但可能被重用的内存,所以used使用完的内存不会返还给free,所以free的内存数一定越来越少)第五行
Swap 交换区
total — 交换区总量
used — 使用的交换区总量
free — 空闲交换区总量
cached — 缓冲的交换区总量
(swap used经常变化的话说明内存已经不够使用了)
(系统可使用的内存近似为第四行的free+buff/cache+第五行的cache)
读者可以参考 参考链接了解进程状态监控各项指标
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值,负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态,D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
top交互
执行top命令之后即进入top信息展示界面,可以使用命令行进行交互
- top界面 按1显示多核cpu的使用情况
- top界面默认按cpu的使用降序排序
使用shift+>和shift+<来改变排序的指标 - top界面 按x高亮排序的指标
- top其他使用技巧
h 显示帮助画面,给出一些简短的命令总结说明
k 终止一个进程
i 忽略闲置和僵死进程。这是一个开关式命令
q 退出程序
r 重新安排一个进程的优先级别
S 切换到累计模式
s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s
f或者F 从当前显示中添加或者删除项目
o或者O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
说明
在top命令界面中,几乎不使用交互命令,在排查问题时,一般紧盯cpu使用高的线程即可。