简介
反应系统中各进程使用资源的情况,并附带描述信息(如进程id)供其它系统命令使用。
它的展示信息分为两个区,上半部为系统整理的资源使用情况,下半部为各进程(线程)的资源使用情况。
上半区
值 | 解释 |
11:10:28 | 系统当前时间 |
Up 714 days, 23:21 | 系统运行时间 |
1 user | 当前登录用户数 |
Load average: … | 系统1分钟、5分钟、15分钟的负载情况(通常这个数值除以cpu的个数,高于5的话表示系统已经超负荷了) |
Tasks: … | 总进程28,运行中1,休眠27,停止0,僵尸0 |
%Cpu(s):… | Cpu统计信息:用户空间占比(us),内核空间占比(sy),改变过优先级进程占比(ni),空闲占比(id),io等待占比(wa),硬中断占比(hi),软中断占比(si) |
KiB Mem:… | 内存统计信息:总内存(total),空闲内存(free),使用内存(used),缓存(buff/cache) |
KiB Swap:… | 内存交换分区信息 |
备注:
可用内存=free + buffer + cached
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,
第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。
纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
下半区
符号 | 解释 |
PID | 进程id |
USER | 该进程所属的用户 |
PR | 优先级 |
NI | 优先级 |
VIRT | 虚拟内存 |
RES | 实际内存占用(不包含共享库使用的内存) |
SHR | 共享内存 |
%cpu | Cpu时间占比 |
%mem | 内存占比 |
Time+ | 进程持续使用时间 |
Command | 启动命令 |
备注:
内存使用包括代码和数据两个部分。
如果进程只是进行了内存映射,会添加在VIRT字段中,但RES或SHR需要使用该申请内存时才会增加(page fault)。
参考文献
- top command in Linux with Examples - GeeksforGeeks
- What do VIRT, RES and SHR mean in the top command? - Ask Ubuntu
- https://www.cnblogs.com/niuben/p/12017242.html