美文网首页
linux drop cache机制

linux drop cache机制

作者: 小灰灰1999 | 来源:发表于2022-10-09 15:12 被阅读0次

    在linux中, 可以通过对/proc/sys/vm/drop_caches设置不同的数值,从而实现不同内容的回收,从linux官方文档中可以看到:


    image.png
    释放物理页缓存
    echo 1 > /proc/sys/vm/drop_caches
    释放可回收的slab对象,包含inode and dentry
    echo 2 > /proc/sys/vm/drop_caches
    同时释放 页、目录、索引节点缓存:
    echo 3 > /proc/sys/vm/drop_caches
    

    操作影响

    1. 上述操作是无害的操作,并且智慧释放完全没有使用的内存对象。脏对象(dirty objects)将继续被使用直到它们被写入到磁盘中,所以内存脏对象不会被释放。
    2. 如果在执行drop_caches之前执行sync指令,则会将脏对象刷新到磁盘中,这样drop_caches操作会释放出更多内存。
    3. 回收内存过程中可能会导致cpu和io比较高,也可以在进程运行过程中进行回收,但是更多的建议在停止进程后回收,影响较小。

    注意:drop_caches需要花费一些时间(在终端中可以看到大约几十秒时间),此时再次使用cat /proc/buddyinfo可以看到立即出现了大量高阶内存页。

    但是drop_caches这个触发动作是一次性的,也就是说,并不因为cat /proc/sys/vm/drop_caches时显示输出内容是3就表示系统不缓存内容。相反,一旦完成drop_caches,系统立即自动对后续内存对象进行缓存。所以要再次触发缓存清理,需要再次执行 echo 3 > /proc/sys/vm/drop_caches。

    建议操作

    建议操作为:sync && echo 2 > /proc/sys/vm/drop_caches
    

    相关文章

      网友评论

          本文标题:linux drop cache机制

          本文链接:https://www.haomeiwen.com/subject/ovygartx.html