linux内存分析

1100阅读 0评论2014-01-21 zhan5872
分类:LINUX

内存使用说明


 


插入高手做的一张图片,解释非常清晰


Free 命令相对于top 提供了更简洁的查看系统内存使用情况:


[root@rac1 ~]# free  


             total       used       free     shared    buffers     cached


Mem:                  26124      0     124212     413000


-/+ buffers/cache:       471772     563336


Swap:       2096472      842320     1254152


 


这里显示的单位是KB


 


       linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。


 


Mem:表示物理内存统计。
-/+ buffers/cached
:表示物理内存的缓存统计
Swap
:表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了bufferscache时,才会使用到swap


 


Mem 行(第一行)数据说明:


       Total1035108KB。表示物理内存总大小。


       Used1008984KB。表示总计分配给缓存(包含buffers cache )使用的数量,但其中可能部分缓存并未实际使用。


       Free26124KB。表示未被分配的内存。


       Shared0kb。共享内存,一般系统不会用到。


       Buffers124212KB。系统分配但未被使用的buffers 数量。


       Cached413000KB。系统分配但未被使用的cache 数量。


 


-/+ buffers/cache 行(第二行)数据说明:


       Used471772kb,实际使用的buffers cache 总量,也是实际使用的内存总量。


       Free: 563336kb, 未被使用的buffers cache 和未被分配的内存之和,这就是系统当前实际可用内存。


 


根据以上分析,可以得出一下结论:


1.  实际可用内存大小:


       Free-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);


                                   563336 = 26124 + 124212+ 413000


 


2.  已经分配的内存大小:


       Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)


              1008984kb = 471772 + 124212 +413000


 


3.  物理内存总大小


       totalMem= used(-/+ buffers/cache) + free(-/+ buffers/cache)


                     1035108 = 471772 + 563336·`





上一篇:【系统监控】性能检测vmstat,mpstat,iostat
下一篇:Linux技巧