linux 宕机 内存,Linux内存使用高,触发系统宕机

网上的解决方案:用ps查看各进程的内存,大约就占用了4G, 绝大部分内存都是被Page Cache所占用。Linux内核的策略是最大程度的利用内存cache 文件系统的数据,提高IO速度,虽然在机制上是有进程需要更大的内存时,会自动释放Page Cache,但不排除释放不及时或者释放的内存由于存在碎片不满足进程的内存需求。

所以我们需要一个方法,能够限定PageCache的上限。

Linux 提供了这样一个参数min_free_kbytes,用来确定系统开始回收内存的阀值,控制系统的空闲内存。值越高,内核越早开始回收内存,空闲内存越高。

其他可选的临时解决方法:

关闭oom-killer

cat /proc/sys/vm/oom-kill

echo "0" > /proc/sys/vm/oom-kill

vi /etc/sysctl.conf

vm.oom-kill = 0

2. 清空cache (可选)

echo 1 > /proc/sys/vm/drop_caches

实际情况分析:内存只剩下50MB,4GB内存大部分被cache和buffer占用,导致系统宕机,目前

设置了min_free_kbytes的阀值

#echo 400000 > /proc/sys/vm/min_free_kbytes

但实际上,并没有从根本上解决问题.

情况如下:

1)内存逐渐减少到50MB的时候,开始释放,然后到达400MB,逐渐使用,最后回到50MB,依次循环,实际上是非常危险的,由此造成宕机,说明这个设置并不是实时的,而是一个阀值检测。

2)出现了out of memory的打印,系统日志出现问题了。

结论:设置的阀值不是实时有效的,而是一个动态改变的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值