Docker长期运行导致Linux内存buff/caches占用过高,这个问题很常见,但是我们是无法控制Docker自己对pagecache的处理机制的。
我们可以手工执行以下命令进行对buff/caches的清理:
# 表示清除pagecache (执行后问题得以解决)
echo 1 > /proc/sys/vm/drop_caches
# 表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)
# slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache
echo 2 > /proc/sys/vm/drop_caches
# 表示清除pagecache和slab分配器中的缓存对象 (这个可以的)
echo 3 > /proc/sys/vm/drop_caches
当然我们也可以写一个脚本然后定时执行即可。
(adsbygoogle = window.adsbygoogle || []).push({});