手工清除缓存
# 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