搜索
 找回密码
 立即注册

简单一步 , 微信登陆

查看linux系统内存使用情况

作者:icezhou | 时间:2016-6-1 17:54:42 | 阅读:8056| 只看该作者 只看大图
下面和大家分享在 Linux 下查看内存使用情况的 free 命令:

下面是对这些数值的解释:
total :总计物理内存的大小。
used :已使用多大。
free :可用有多少。
Shared :多个进程共享的内存总额。
Buffers/cached :磁盘缓存的大小。
第三行( -/+ buffers/cached ):
used :已使用多大。
free :可用有多少。
第四行就不多解释了。
区别:第二行( mem )的 used/free 与第三行( -/+ buffers/cache )  used/free 的区别。 这两个的区别在
于使用的角度来看,第一行是从 OS 的角度来看,因为对于 OS , buffers/cached  都是属于被使用,所以
他的可用内存是 16176KB ,已用内存是 3250004KB ,其中包括,内核( OS )使用 +Application ( X ,
oracle , etc )使用的 +buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说, buffers/cached  是等于可用的,因为
buffer/cached 是为了提高文件读取的性能,当应用程序需在用到内存的时候, buffer/cached 会很快地
被回收。
所以从应用程序的角度来说,可用内存 = 系统 free memory+buffers+cached 。
如上例:
2795064=16176+110652+2668236
接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行
交换。
如何看额定值:

用 free -m 查看的结果:

查看 /proc/kcore 文件的大小(内存镜像):

备注:
占用内存的测量
测量一个进程占用了多少内存, linux 为我们提供了一个很方便的方法, /proc 目录为我们提供了所有的
信息,实际上 top 等工具也通过这里来获取相应的信息。
/proc/meminfo  机器的内存使用信息
/proc/pid/maps pid 为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm  进程所占用的内存
[ root@localhost ~ ] # cat /proc/self/statm
654 57 44 0 0 334 0
输出解释
CPU  以及 CPU0 。。。的每行的每个参数意思(以第一行为例)为:
参数 解释  /proc//status
Size  ( pages ) 任务虚拟地址空间的大小  VmSize/4
Resident ( pages ) 应用程序正在使用的物理内存的大小  VmRSS/4
Shared ( pages ) 共享页数  0
Trs ( pages ) 程序所拥有的可执行虚拟内存的大小  VmExe/4
Lrs ( pages ) 被映像到任务的虚拟内存空间的库的大小  VmLib/4
Drs ( pages ) 程序数据段和用户态的栈的大小 ( VmData+ VmStk  ) 4
dt ( pages )  04
查看机器可用内存
/proc/28248/ 》 free
total used free shared buffers cached
Mem :  1023788 926400 97388 0 134668 503688
-/+ buffers/cache :  288044 735744
Swap :  1959920 89608 1870312
我们通过 free 命令查看机器空闲内存时,会发现 free 的值很小。这主要是因为,在 linux 中有这么一种
思想,内存不用白不用,因此它尽可能的 cache 和 buffer 一些数据,以方便下次使用。但实际上这些内
存也是可以立刻拿来使用的。
所以 空闲内存 =free+buffers+cached=total-used

收藏
收藏0
分享
分享
点赞
点赞32
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评3

沙发#
bean.yang 发表于:2016-6-13 14:24:10
回复

使用道具 举报

板凳#
halleyhuang 发表于:2016-6-13 14:48:00
学 习 了
该会员没有填写今日想说内容.
回复

使用道具 举报

地板#
lailiuming 发表于:2016-6-13 15:42:03
好贴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版