top 命令会显示很多项目,默认3秒钟更新一次,当然这个时间可以调整的
uptime: 第一行显示的是系统启动时间、已经运行的时间,用户数目,三个平均负载值(最近1秒,5秒,15秒的负载值)。
processes: 第二行显示当前运行进程总数,正在运行的,休眠的,停止的以及最后的僵尸进程。进程和状态显示可以通过交互命令t来实现。
CPU states: 第三行CPU的整体负载,需要特别注意 %wa,代表的是I/Owait,通常系统变慢都是I/O产生的问题比较大!
Mem: 第四行显示内存大小,已用内存,空闲内存,缓冲记忆内存
Swap: 第五行显示交换空间总大小,已用交换空间,空闲交换空间,缓存内存
PID: 进程的ID;USER 进程的用户;PR 进程的优先级别,越小越早执行;NI 进程的优先级值,越小越早执行。
VIRT:
RES:
S: 进程状态
%CPU: CPU使用率
%MEM: 内存使用率
TMIE+: CPU 使用时间的累加
补充:
VIRT(虚拟内存):virtual memory usage
进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等。假如进程申请100m的内存,但实际只使用了10m,它的值是100m,而不是实际的使用量
RES(常驻内存) :resident memory usage
进程当前使用的内存大小,但不包括swap out ,包含其他进程的共享。 如果进程申请100m的内存,实际使用10m,它的值是10m,与VIRT相反
关于库占用内存的情况,它只统计加载的库文件所占内存大小
关于swap out:
Swap下的si,so
si表示当前(三秒钟之内)每秒交换回内存(Swap in)的总量,单位为kbytes;so表示当前(三秒钟之内)每秒交换出内存(Swap out)的总量,单位为kbytes。
SHR(共享内存):shared memory
除了自身进程的共享内存,也包括其他进程的共享内存,虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
计算某个进程所占的物理内存大小公式:RES – SHR ,swap out后,它将会降下来
DATA
数据占用的内存,真正的该程序要求的数据空间,是真正在运行中要使用的。 如果top没有显示,按f键可以显示出来。
转自http://www.cppblog.com/fwxjj/archive/2012/05/09/174105.aspx