top命令详解

Posted 111testing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了top命令详解相关的知识,希望对你有一定的参考价值。

top命令详解

技术图片

常被人说的VIRT=RES+SWAP

一般情况下直接使用top命令查看进程信息时,每个进程的的虚拟内存使用情况VIRT并不是实际使用的大小,

需要使用top -m命令,使用后列表中的VIRT会被替换成USED,这是再套用公式VIRT(USED)=RES+SWAP,等式成立。

 VIRT 值最高的进程就是内存使用最多的进程。当你在用 top 排查为什么你的电脑运行无比卡的时候,那个 VIRT 数值最大的进程就是元凶。

VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。

PR

进程的调度优先级(动态优先级)。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI

进程的nice值(静态优先级-20~19)。越小的值意味着越高的优先级

 

技术图片

 buffers:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。

cached:内存中读完缓存起来内容占的大小(这部分是为了下次查询时快速返回)。 

Swap分区

Swap分区,即交换区,系统在物理内存不够时,与Swap进行交换。即当系统的物理内存不够用时,把硬盘中一部分空间释放出来,以供当前运行的程序使用。当那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。那些被释放内存空间的程序一般是很长时间没有什么操作的程序。

linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度(进程是正在运行的程序)把当前不用的进程调成 “等待(standby)”,甚至 ‘睡眠(sleep)’,一旦要用,再调成 ‘活动(active)’,睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给 ‘活动’ 的进程。
如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
在linux里面,默认设置swappiness这个值等于60

Swap空间一般应大于或等于物理内存的大小,同时最小不应小于64M,最大应该是物理内存的两倍

 

-/+ buffers/cache看作两部分:

-buffers/cache:正在使用的内存大小(注意不是used部分,因为buffers和cached并不是正在使用的,需要是它时是可以清空释放的),其值=used-buffers-cached。

+buffers/cache:可用的内存大小(同理也不是free表示的部分,因为buffers和cached是可以清空释放的),其值=free+buffers+cached。

Swap:硬盘上交换分区的使用大小。设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘(也就是把buffers/cache里面长期不用的数据存放在swap里面,而swap又在硬盘),从而把磁盘的部分空间当做虚拟内存来使用。

 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数

当空闲物理内存不多时,不一定表示系统运行状态很差,因为内存的cache及buffer部分可以随时被重用,在某种意义上,这两部分内存也可以看作诗额外的空闲内存。swap如果被频繁调用,长时间不为0,则才是内存资源是否紧张的依据。通过free看资源时,实际主要关注-/+ buffers/cache的值就可以知道内存到底够不够了

技术图片

 

以上是关于top命令详解的主要内容,如果未能解决你的问题,请参考以下文章

top命令详解

Linux中top命令参数详解

Linux命令工具 top详解

TOP命令参数详解---10分钟学会top用法

TOP命令参数详解---10分钟学会top用法

top命令详解