内存buff/cache占用过大

在使用阿里云k8s集群的过程中,由于应用对于free内存的容量要求较高,设置了阈值较低的mem告警策略

收到告警mem free不足,登录主机top发现16g内存,10g左右均为buff/cache,

通过查找资料,整理出简单的总结:

原因:buff为写文件缓存,cache为读文件缓存,linux在缓存使用后并不会马上释放,而是用来缓存其他信息提高io效率,所以有过大文件读写操作就会造成buff/cache 变高

手动清理cache方法:

#将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-Node、已延迟的块 I/O 和读写映射文件,确保文件系统的完整性
sync

#执行清理内存指令
#0:不释放(系统默认值)
#1:释放页缓存
#2:释放dentries和inodes
#3:释放所有缓存
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

释放后free -m查看内存占用情况cache明显减少

#恢复内存清理策略为不清理
echo 0 > /proc/sys/vm/drop_caches

在恢复内存清理策略的过程中报错:echo: write error: invalid argument(ubuntu 16.04) ,也不支持vim修改, 尝试重启主机后,drop_caches值自动恢复为0,不过在重启主机的过程中,free发现cache又不断增加,没有解决,

定位占用cache的文件:(使用开源工具pcstat ,centos需要yum install lsof)

安装pcstat:

#安装高版本go(ubuntu16.04 apt-get默认安
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值