Linux共享内存异常增长:你真的了解shared吗?

本文描述了一次IT环境中内存持续增长的问题,通过排查top、ipcs、manfree和df-h,发现是由于tmpfs重复挂载导致shared内存占用。最终通过umount和修复代码解决了问题,强调了从原理出发解决问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景:

环境的内存快被消耗完了,发现都是shared占用的,重启会恢复,但是重启之后shared内存又会不断地增长,直到把所有的内存占完

排查过程:

1 使用top查看,并没有发现什么可疑的进程

2 使用ipcs查看共享内存的信息,也没发现什么异常,并且占用的内存都很小

3 最后为了排除自己对ipcs这个命令不了解的嫌疑,把上面owner用户的所有进程都kill了,shared还是纹丝不动

找不到问题之后,只能回归到问题的本质

使用man free 查了一下shared的解释,Memory used (mostly) by tmpfs ,tmpfs是一个基于内存的临时文件系统

4 所以使用df -h 查看了一下,当前不同文件系统的占用情况,也发现并没有占用很多的文件系统

最后使用mount查看了一下挂载情况,发现有很多的tmpfs文件系统的重复挂载

最后排查到是业务有个地方有一个重复挂载的bug

解决方案:

umount 掉这些重复挂载之后,替换业务代码,环境就恢复正常了

总结:

  该问题的难点是:不了解free -g 展示的shared是如何定义的,统计的数据从何而来,所以无从下手定位,所以遇到问题没有思路的时候,还是得从原理出发,去发散可能性。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值