---top - 09:13:23 up 4 min, 1 user, load average: 3.97, 2.52, 1.06
09:13:23 — 当前系统时间
up后面代表系统已经运行的时间 此处为4 min(在这期间没有重启过)
users — 前面是数字几 代表当前有几个用户登录系统
load average: 平均负载 3.97, 2.52, 1.06 分别是1分钟、5分钟、15分钟的负载情况
--load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。
如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
----Tasks: — 任务(进程) 271 total, 3 running, 268 sleeping, 0 stopped, 0 zombie
total 总进程 此处为271
running 处于运行中 此处为3
sleeping 休眠 此处为268
stopped 停止 此处为0
zombie 僵尸进程 此处为0
----%Cpu(s): 38.0 us, 9.9 sy, 0.0 ni, 5.5 id, 46.4 wa, 0.0 hi, 0.4 si, 0.0 st
38.0 us【user space】— 用户空间占用CPU的百分比。
9.9 sy【sysctl】— 内核空间占用CPU的百分比。
0.0 ni【】— 改变过优先级的进程占用CPU的百分比
5.5 id【idolt】— 空闲CPU百分比
46.4 wa【wait】— IO等待占用CPU的百分比
0.0 hi【Hardware IRQ】— 硬中断占用CPU的百分比 当硬件设备(网卡,键盘控制器,外部计时器,硬件传感器等)需要向CPU发送信号时(例如,数据已到达),就会产生硬件中断。
0.4 si【Software Interrupts】— 软中断占用CPU的百分比
0.0 st:虚拟机占用百分比
仅与虚拟化环境相关
-----KiB Mem 内存状态: 3379724 total, 1450976 free, 874812 used, 1053936 buff/cache
3379724 total — 物理内存总量(3GB)
1450976 used — 使用中的内存总量(1.4GB)
874812 free — 空闲内存总量(870M)
1053936 buffers — 缓存的内存量 (1GB)
total= free + used + buff/cache=1450976+874812+1053936=3379724
totalfree=free + buff/cache=1450976+1053936=2504912
------KiB Swap交换分区: 7340024 total, 7340024 free, 0 used. 1115464 avail Mem
total 交换区总量(7G)
free 空闲交换区总量(7G)
used 使用的交换区总量(0)
--used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了
avail Mem 可用交换取总量(1G)
PID — 进程id
USER — 进程所有者
PR — priority 进程优先级 任务的动态调度优先级,取值范围是[-100,39],值越小优先级越高
NI — nice值。
任务的静态调度优先级,取值范围是[-20,19],值越小优先级越高。负值表示高优先级,正值表示低优先级
Linux实际上实现了140个优先级范围,取值范围是从0~139,这个值越小,优先级越高。nice值的-20到19,映射到实际的优先级范围是100-139。
VIRT
— Virtual memory usage 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES 假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES
— Resident memory usage 常驻内存 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA 如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
SHR
— Shared memory 共享内存共享内存大小,单位kb
计算某个进程所占的物理内存大小公式:RES – SHR swap out后,它将会降下来
S — : Process status 进程状态。
'R' = running,表示进程在 CPU 的就绪队列中,正在运行或者正在等待运行。
'D' = uninterruptible sleep,不可中断状态睡眠,一般表示进程正在跟硬件交互,并且交互过程不允许被其他进程或中断打断。
'S' = sleep,可中断状态睡眠,表示进程因为等待某个事件而被系统挂起。当进程等待的事件发生时,它会被唤醒并进入 R 状态。
'I' = 'Idle' ,也就是空闲状态,用在不可中断睡眠的内核线程上。硬件交互导致的不可中断进程用 D 表示,但对某些内核线程来说,它们有可能实际上并没有任何负载,用 Idle 正是为了区分这种情况。要注意,D 状态的进程会导致平均负载升高, I 状态的进程却不会。
'T' = traced or stopped,表示进程处于暂停或者跟踪状态。向一个进程发送 SIGSTOP 信号,它就会因响应这个信号变成暂停状态(Stopped);再向它发送 SIGCONT 信号,进程又会恢复运行(如果进程是终端里直接启动的,则需要你用 fg 命令,恢复到前台运行)。
'Z' = zombie,它表示僵尸进程,也就是进程实际上已经结束了,但是父进程还没有回收它的资源(比如进程的描述符、PID 等)。
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
从右到左分别是百分之一秒,十分之一秒,秒,十秒,分钟
0:40.87
百分之一秒7,十分之一秒8,秒0,十秒4,分钟0 是按位来计算的
COMMAND — 进程名称(命令名/命令行)