Linux Command:top
Posted on Wed, 25 Dec 2024 13:58:42 +0800 by LiangMingJian
概述
top 命令常用于监控 linux 的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
top [-d number] # -d:top命令显示的页面更新一次的间隔,单位秒。
top [-bnp] # -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程观察。
在 top 命令运行时,用户还可以输入以下按键执行相应的功能(注意区分大小写):
- ?:显示在top当中可以输入的命令
- P:以CPU的使用资源排序显示
- M:以内存的使用资源排序显示
- N:以 pid 排序显示
- T:由进程使用的时间累计排序显示
- k:给某一个 pid 一个信号,杀死进程
- r:给某个pid重新定制一个 nice 值(即优先级)
- q:退出top(或 Ctrl+C)
top 各输出的含义
第1行
top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30
内容 | 含义 |
---|---|
05:43:27 | 系统当前时间 |
up 4:52 | 系统运行时间,格式为时:分 |
2 users | 当前登录用户数 |
load average: 0.58, 0.41, 0.30 | 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转。 |
第2行
Tasks: 746 total, 1 running, 745 sleeping, 0 stopped, 0 zombie
内容 | 含义 |
---|---|
Tasks | 任务队列信息 |
total | 总 |
running | 运行中 |
sleeping | 睡眠 |
stopped | 停止 |
zombie | 僵尸进程 |
第3行
%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
内容 | 含义 |
---|---|
%Cpu(s) | CPU信息,(s)表示不止一个,多个CPU |
us | 用户空间占用CPU百分比 |
sy | 内核空间占用CPU百分比 |
ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
id | 空闲CPU百分比 |
wa | 等待输入输出的CPU时间百分比 |
hi | 硬中断(Hardware IRQ)占用CPU的百分比 |
si | 软中断(Software Interrupts)占用CPU的百分比 |
st | 系统花费百分之多少时间等待真正的cpu资源。该参量常用于虚拟化系统上,在正常情况下虚拟机的st最好为0,这表明你的虚拟机得到了所有必要的cpu资源,在使用时不用等待。如果这个值为50,则表明你的虚拟机在运行时有一半时间在等待CPU,存在其他虚拟机与你竞争资源。 |
第4行
KiB Mem : 7990288 total, 3173076 free, 2748968 used, 2068244 buff/cache
内容 | 含义 |
---|---|
KiB Mem | 物理内存信息 |
total | 物理内存总量 |
free | 空闲内存总量 |
used | 使用的物理内存总量 |
buff/cache | 用作内核缓存的内存量 |
第5行
KiB Swap: 8257532 total, 8257532 free, 0 used. 4615016 avail Mem
内容 | 含义 |
---|---|
KiB Swap | 硬盘交换内存、虚拟内存 |
total | 总量 |
free | 空闲 |
used | 使用 |
avail Mem | 可用于进程下一次分配的内存数量 |
PS:计算可用内存数公式: 第四行的 free + 第四行的 buffers + 第五行的 avail Mem
top 的进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
内容 | 含义 |
---|---|
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+ | 进程运行时间 |
COMMAND | 命令名/命令行 |
示例
监控每个逻辑 CPU 的状况
在 top 基本视图中按 1
触发粗体显示
按 b
显示完整命令
按 c
切换显示 CPU
按 t
按 CPU 使用率从大到小排序
按 P
切换显示 Memory
按 m
按 Memory 占用率从大到小排序
按 M
按累计运行时间 Time 从大到小排序
按 T
高亮 CPU 列
按 x
彩色高亮显示
按 z
按 shift+z 可以调配色方案
向右或左改变排序列
shift + > 或 shift + <
忽略闲置和僵死进程
按 i
杀掉进程
按 k, 输入 PID
改变内存的显示单位,默认为 KB
按 e (针对列表)
按 E (针对头部统计信息)
高亮
按 x,将排序字段高亮显示(纵列)
按 y,将运行进程高亮显示(横行)
刷新时间
-d: 设置延迟间隔
指定进程
-p: 监控特定的PID