top命令可以动态实时显示Linux进程信息,方便观察频繁换进换出的内存的进程变化。
top命令执行示例如下:
其中,第一行表示系统当前时间、系统的运行时间、登录的用户数目、系统的平均负载(最近1分钟,最近5分钟,最近15分钟)。
第二行表示任务(即进程)总数目,以及处于运行、休眠、停止、僵化状态的进程数目。
第三行表示CPU利用率的信息。
us,user:用户空间进程占用CPU的百分比;
sy,system:内核空间进程占用CPU的百分比;
ni,niced:改变过优先级的用户空间进程占用CPU的百分比;
id,idle:内核空闲处理占用CPU的百分比;
wa,IO-wait:等待I/O完成占用CPU的百分比;
hi,hardware IRQ:硬中断占用CPU的百分比;
si,software IRQ:软中断占用CPU的百分比;
st,stolen:被该管理程序偷走的时间占比;
第四行表示系统的物理内存(单位MiB,即2^20字节):总内存、空闲、已占用和缓存大小。
第五行表示swap交换空间(单位MiB,即2^20字节):总大小、空闲、已占用和可用内存。
最后是系统运行的进程的详细列表:
PID:进程ID
USER:进程所属用户
PR:进程优先级
NI:进程的谦让度值
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程和其它进程共享的内存总量
S:进程的状态,R表示运行,S表示休眠,I表示空闲,T表示跟踪或停止,Z表示僵化
%CPU:进程使用的CPU时间比例
%MEM:进程使用的内存占可用内存的比例
TIME+:进程启动以来的CPU时间总量
COMMAND:进程所对应的命令行名称,即启动的程序名
top命令一般可着重关注以下几个点:
- load average第三个值最近15分钟的平均负载是否较高,系统可能存在问题
- Mem free可用物理内存是否持续不断减小,如果是,意味着有内存泄漏
- 进程的%CPU占用率是否有长时间超过90%的,可能程序卡死或其它异常
某进程CPU占用率飙到100%的示例如下图,哦,这有问题的程序啊。