阿里云ecs,Linux-centos系统,lnmp环境。这几天出现内存越用越少,一共16G的内存,刚开机就用4G就够了,但是随着时间的推移,内存会越来越少,过个两天内存就只剩下1G了。
到底内存够用不够用,free告诉你。free输出的信息要这样阅读:
第一行输出:
Mem: 15948 是当前系统总内存量 8778 是当前系统已使用的量(8778=(top看到的进程的所有MEM一列的总和)+ Cache + Buffer),也就是说,这一行的Use的量,是物理内存里面存放了有效数据的量。有效数据包含了程序空间内使用的,以及操作系统用来做缓存的(buffer=写缓存,Cache=读缓存)
-+ Buffer/Cache:Use列的量就是真正程序空间使用的内存量。 free列就是系统理论上空闲的物理内存量(理论值,就是程序实际能使用的最大物理内存值。举个例子,现在你free还有14572,理论上,你可以启动一个程序,占用14572M内存,系统都可以满足这个程序,你可以写个程序测试一下)。
Swap列:最简单直接的判定Linux系统内存是否充足的依据:used为0,free不为0,说明分配了swap,但没有使用。这个时候内存是充足的。反之,used有值,则used使用越大,说明内存缺口越大。
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方 面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows 是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux 都将能充分利用起来,发挥了硬件投资带来的好处,而Windows只将其做为摆设,即使增加8GB甚至更大。
Linux 的这一特性,主要是利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。