SuperIC社区_

标题: 查看linux系统内存使用情况 [打印本页]

作者: icezhou    时间: 2016-6-1 17:54
标题: 查看linux系统内存使用情况
下面和大家分享在 Linux 下查看内存使用情况的 free 命令:
(, 下载次数: 488)
下面是对这些数值的解释:
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
接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行
交换。
如何看额定值:
(, 下载次数: 480)
用 free -m 查看的结果:
(, 下载次数: 479)
查看 /proc/kcore 文件的大小(内存镜像):
(, 下载次数: 461)
备注:
占用内存的测量
测量一个进程占用了多少内存, 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


作者: bean.yang    时间: 2016-6-13 14:24

作者: halleyhuang    时间: 2016-6-13 14:48
学 习 了
作者: lailiuming    时间: 2016-6-13 15:42
好贴




欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3