Linux Command:top

Posted on Wed, 25 Dec 2024 13:58:42 +0800 by LiangMingJian


概述

在 Linux 中,top 命令常用于监控系统运行状况,是常用的性能分析工具,能够实时显示系统中各个进程的 CPU, 内存等资源占用情况。

在 Linux 中,唤起 top 界面只需如下输入命令即可:

# 唤起 top
top

# 特别的,可以通过 -p 参数指定一个进程进行监控
top -p pid

top 的统计信息

第1行

top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30

内容含义
top标题
05:43:27系统当前时间
up 4:52系统运行时间,格式为时:分
2 users当前登录用户数
load average: 0.58, 0.41, 0.30系统过去 1分钟、5分钟、15分钟到现在的负载平均值。如果这个数除以逻辑CPU的数量,结果高于70的时候就表明系统在超负荷运转(每个逻辑 CPU 的系统占用都超过 70%)。

第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

这里在用户使用功能键 1 时,会显示每一个逻辑 CPU 的值,而不是 %Cpu(s)

内容含义
%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可用于进程下一次分配的内存数量

计算可用内存数公式 = 第四行的 free + 第四行的 buffers + 第五行的 avail Mem

top 的进程信息

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

在这里,需要注意 %CPU 的占用,有多少个逻辑 CPU 数量,则 %CPU 最多能到达逻辑 CPU 数量 * 100% 的数值,比如 2 核 CPU,这里最大能占用 200%。

内容含义
PID进程id
USER进程所有者
PR优先级
NInice 值,负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态,D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
%CPU进程使用的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程运行时间
COMMAND命令名/命令行

top 的指令功能

在 top 命令运行时,用户可以输入以下按键执行相应的功能(注意区分大小写):

按键功能
查看支持的功能按键
b粗体高亮显示
c显示完整的进程命令
E切换统计栏的内存单位,默认KB
e切换进程栏的内存单位,默认KB
t切换统计栏的 CPU 展示方式
m切换统计栏的内存展示方式
1展开统计栏的逻辑 CPU 信息
f设置进程栏的统计信息和排序。在该功能中,允许 top 收集更多的进程信息与设置当前的排序方式。
L查找
> 或 <改变当前排序列
P以 CPU 的使用资源排序显示
M以内存的使用资源排序显示
N以 pid 排序显示
T由进程使用的时间累计排序显示
k给某一个 pid 一个信号,杀死进程
q 或 Ctrl+C退出top

上述表格仅展示常用功能按键,更多按键请查看 ?帮助手册。