手工清除linux 系统buff cache缓存
手工清除缓存
# sync (是 把 buff 中的 内容强制写入磁盘)
# echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
cache释放:
只释放pagecache:
echo 1 > /proc/sys/vm/drop_caches
只释放dentries和inodes缓存:
echo 2 > /proc/sys/vm/drop_caches
释放pagecache、dentries和inodes缓存:
echo 3 > /proc/sys/vm/drop_caches
这个操作不是破坏性操作,脏的对象(比如脏页)不会被释放,因此要首先运行sync命令。
内核2.6的版本执行上述的操作都没问题的,但是到了内核3系列,就不能执行echo 0 >/proc/sys/vm/drop_caches的操作了,重启才能改回去
# echo 0 >/proc/sys/vm/drop_caches
-bash: echo: write error: Invalid argument
# sysctl -a|grep vm.drop_caches #内核中有这个参数
vm.drop_caches = 3
# sysctl -w vm.drop_caches=0 #也写不进去,这个在内核2.6系列上面可以的,这也是手工释放内存缓存的另一种形式(sysctl -w vm.drop_caches=3)
error: "Invalid argument" setting key "vm.drop_caches"
# sysctl -w vm.drop_caches=1 #执行其他的是没问题的,但是就是执行0的插入不可以,要重启服务器。
vm.drop_caches = 1
本文是原创文章,转载请注明来自 知识殿堂
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果