/proc/sys/vm/drop_caches 清理缓存

Posted hellokitty2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了/proc/sys/vm/drop_caches 清理缓存相关的知识,希望对你有一定的参考价值。

1. 使用方法

/proc/sys/vm/drop_caches默认是0

# echo 1 > /proc/sys/vm/drop_caches; free pagecache, use
# echo 2 > /proc/sys/vm/drop_caches; free dentries and inodes
# echo 3 > /proc/sys/vm/drop_caches; free pagecache, dentries and inodes

注意:使用之前需要先sync,将缓存刷到磁盘中。

 

2. 实验

单位:MB

# free -m
              total        used        free      shared  buff/cache   available
Mem:           1825         381        1363           8          79        1413
Swap:             0           0           0
# cp /etc/* /mytest/
# free -m
              total        used        free      shared  buff/cache   available
Mem:           1825         382        1341           8         101        1412
Swap:             0           0           0

过一段时间:

# free -m
              total        used        free      shared  buff/cache   available
Mem:           1825         382        1341           8         101        1412
Swap:             0

# cat /proc/sys/vm/drop_caches
0

# sync

# echo 3 > /proc/sys/vm/drop_caches
# free -m
              total        used        free      shared  buff/cache   available
Mem:           1825         382        1405           8          37        1413
Swap:  

 

3. 写个脚本做这个事情

# cat cleanup_cache.sh 
#!/bin/sh
# drop_caches for every 5 mins

drop_caches() {
    echo "Drop caches."
    sync
    echo 3 > /proc/sys/vm/drop_caches &
    return 0
}

while true; do
    sleep 300
    drop_caches
done

exit 0

 

4. 结论

Linux内核默认保持drop_cache的值是0,不建议经常修改它。

 



以上是关于/proc/sys/vm/drop_caches 清理缓存的主要内容,如果未能解决你的问题,请参考以下文章

释放ceche内存echo 3 > /proc/sys/vm/drop_caches释放内存完后需要把drop_caches的值修改回原来默认值吗

echo 3 > /proc/sys/vm/drop_caches linux大量重复进程 问题!

linux清理内存命令

centos清理缓存

linux内存释放

Ubuntu清理内存命令(效果不明显)