Top命令打印含义
第一行,进程总信息:
Tasks: 任务(进程)数, 其中处于运行中的有 1个,425个在休眠(sleep), 0个stoped状态,1个zombie状态进程.
第二行,内存总信息:
mem:
509248k total — 物理内存总量(509M)
495964k used — 使用中的内存总量(495M)
13284k free — 空闲内存总量(13M)
25364k buffers — 缓存的内存量 (25M)
第三行:
swap交换分区
492536k total — 交换区总量(492M)
11856k used — 使用的交换区总量(11M)
480680k free — 空闲交换区总量(480M)
202224k cached — 缓冲的交换区总量(202M)
第四行,Cpu状态:
800% cpu - 看出来应该是8个核
8%user - 用户空间占用CPU百分比
1%nice - 改变过优先级的进程占用CPU的百分比
14%sys - 内核空间占用CPU的百分比
771%idle - 空闲CPU的百分比
1%iow -
3%irq - 硬中断占用CPU的百分比
2%sirq - 软中断占用CPU的百分比
0%host -
第五行:
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
这个内存使用就是一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
常驻内存。这个值就是该应用程序真的使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S:这个是进程的状态。它有以下不同的值:
D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
I - 空闲
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
ARGS/COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)