清理缓存时,我们会使用 echo n > /proc/sys/vm/drop_caches 。清理完成后,想将drop_caches的值恢复成默认的0,然后发现会报错:
# echo 0 > /proc/sys/vm/drop_caches
-bash: echo: write error: Invalid argument
找了半天都没搜到解决方法,只说重启之后就会恢复成默认值0,可是生产环境的服务器哪是说重启就能重启的呢?突然想起之前有一台服务器恢复默认值的操作时成功了的,万幸terminal还没关掉,翻了下历史命令,发现其实这个报错的原因和解决方法简直不要太简单——去掉0和>之间之间的空格就好了!即:echo 0> /proc/sys/vm/drop_caches 就不会有报错!cat发现值已经变成0了!
# cat /proc/sys/vm/drop_caches
0
附:linux缓存释放
配置文件:/proc/sys/vm/drop_caches 该文件记录了缓存释放的参数,默认值为0,也就是不释放缓存
- 1 – 释放页缓存
- 2 – 释放dentries和inodes
- 3 – 释放所有缓存
# sync 释放缓存前先将数据写入磁盘
# echo 3 > /proc/sys/vm/drop_caches
# echo 0> /proc/sys/vm/drop_caches 恢复默认值