docker 容器占用内存_为什么容器内存占用居高不下,频频 OOM(续)

本文探讨了Docker容器内存占用高的问题,深入分析了Linux内核版本3.10.x中内存管理的BUG,特别是kmem accounting导致的内存泄露。解决方案包括关闭kmem accounting或升级内核版本至3.10.0-1075.el7以上,以修复slab泄露和cgroup问题。此外,文章建议升级到更高版本的Linux内核以增强cgroup稳定性。
摘要由CSDN通过智能技术生成

在上周的文章《为什么容器内存占用居高不下,频频 OOM》 中,我根据现状进行了分析和说明,收到了很多读者的建议和疑惑,因此有了这一篇文章,包含更进一步的说明和排查。

疑问

在出现系统内存过高的情况下,我们可以通过 free -m 来查看当前系统的内存使用情况:

546a8119ea5ee7502cf38758aaa4e45e.png
image

在发现是系统内存占用高后,就有读者提到,为什么不 “手动清理 Cache”,因为 Cache 高的话,可以通过 drop_caches 的方式来清理:

  1. 清理 page cache:
$ echo 1 > /proc/sys/vm/drop_caches
  1. 清理 dentries 和 inodes:
$ echo 2 > /proc/sys/vm/drop_caches
  1. 清理 page cache、dentries 和 inodes:
$ echo 3 > /proc/sys/vm/drop_caches

但新问题又出现了,因为我们的命题是在容器中,在 Kubernetes 中,若执行 drop_caches 相关命令,将会对 Node 节点上的所有其他应用程序产生影响,尤其是那些占用大量 IO 并由于缓冲区高速缓存而获得更好性能的应用程序,可能会产生 “负面” 后果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值