解决buff/cache占用过大
场景:我们常用的内存型占用较大的服务或者数据库,经过一定的时间,会将系统中的buff/cache占满,导致性能急剧下降,甚至频繁使用swap区进行数据交换。从而导致io也到达瓶颈。查看buff/cache情况:# free -htotalusedfreesharedbuff/cacheavailableMem:32G8.9G8.2G24
·
场景:
我们常用的内存型占用较大的服务或者数据库,经过一定的时间,会将系统中的buff/cache占满,导致性能急剧下降,甚至频繁使用swap区进行数据交换。从而导致io也到达瓶颈。
查看buff/cache情况:
# free -h
total used free shared buff/cache available
Mem: 32G 8.9G 8.2G 24M 24.4G 9.3G
Swap: 0B 0B 0B
解决:
#查看drop cache配置
cat /proc/sys/vm/drop_caches
直接清除buff/cache(慎用,如果生产环境cache里跑着数据,你给干了,就凉凉了)
echo 1 > /proc/sys/vm/drop_caches
另外还能设置0-3。
1 :清除pagecache。
2 :清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
3 :清除pagecache和slab分配器中的缓存对象。
buff占用过大,终归还是要究其根因。不能靠万能重启法或者rm -rf 法。
技术交流与资源分享(博主Q微同号: 446794914),感兴趣的朋友欢迎交流。
更多推荐
已为社区贡献2条内容
所有评论(0)