本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
Linux系统及其用户进程运行过程中会产生Page Cache(文件缓存),随着运行时间的增加,Page Cache的占比逐渐上升,进而占用更多的系统资源。这可能导致对性能敏感型业务出现性能抖动,甚至引发部分任务出现OOM(Out of Memory)现象。在需要释放大量内存的业务场景中,可以通过/proc/sys/vm/drop_caches
接口来释放缓存。
操作步骤
警告
由于drop_caches
回收内存删除了系统中的Page Cache及所需的dentries(目录项)和inodes(索引节点),可能导致在进行磁盘IO操作等过程中出现性能下降,请根据实际需求谨慎进行内存回收。
以下操作仅会释放未被使用的对象,内存中的脏页对象将继续被使用,直至其写出到磁盘前无法释放。如需释放脏页对象的内存,请在使用drop_caches接口清理Page Cache之前执行sync
命令,将内存中的脏页面写出到磁盘,这些操作通常能够释放更多的内存。
释放页面缓存。
调用
drop_caches
接口释放Page Cache。sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
通过
sysctl
命令释放Page Cache。sudo sysctl -w vm.drop_caches=1
释放
dentries
和inodes
。调用
drop_caches
接口释放dentries
和inodes
。sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
通过
sysctl
命令释放dentries
和inodes
。sudo sysctl -w vm.drop_caches=2
释放Page Cache、
dentries
和inodes
。调用
drop_caches
接口释放Page Cache、dentries
和inodes
。sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
通过
sysctl
命令释放Page Cache、dentries
和inodes
。sudo sysctl -w vm.drop_caches=3
文档内容是否对您有帮助?