开发者社区> 问答> 正文

Linux内存越用越少,不释放内存

阿里云ecs,Linux-centos系统,lnmp环境。这几天出现内存越用越少,一共16G的内存,刚开机就用4G就够了,但是随着时间的推移,内存会越来越少,过个两天内存就只剩下1G了。topfree

展开
收起
荔枝味0 2017-03-15 11:17:08 8122 0
4 条回答
写回答
取消 提交回答
  • 这其实也不算好的设计 ,linux这么搞有相应的缺点,社区有些人已经在反思了。

    2019-07-17 20:55:28
    赞同 展开评论 打赏
  • 到底内存够用不够用,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使用越大,说明内存缺口越大。

    2019-07-17 20:55:28
    赞同 展开评论 打赏
  • 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方 面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows 是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux 都将能充分利用起来,发挥了硬件投资带来的好处,而Windows只将其做为摆设,即使增加8GB甚至更大。

    Linux 的这一特性,主要是利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。

    2019-07-17 20:55:28
    赞同 展开评论 打赏
  • 有人帮忙解答一下吗

    2019-07-17 20:55:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 技术揭秘 立即下载
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载