Linux清除buff/cache

  1. 清除 buff/cache
清理pagecache(页面缓存)
sync;echo 1 > /proc/sys/vm/drop_caches     或者 # sync;sysctl -w vm.drop_caches=1
清理dentries(目录缓存)和inodes
sync;echo 2 > /proc/sys/vm/drop_caches     或者 # sync;sysctl -w vm.drop_caches=2
清理pagecache、dentries和inodes
sync;echo 3 > /proc/sys/vm/drop_caches     或者 # sync;sysctl -w vm.drop_caches=3

上面三种方式都是临时释放缓存的方法,要想永久释放缓存
需要在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效即可!

可以添加下列参数至 /etc/sysctl.conf 文件调整内核参数
vm.swappiness = 0
vm.dirty_ratio = 100 #如果进程产生的脏数据到达系统整体内存的百分比,此时进程自行把脏数据写回磁盘。缺省设置:40 
vm.dirty_background_ratio = 40 #脏数据到达系统整体内存的百分比,此时触发 pdflush 进程把脏数据写回磁盘。缺省设置:10 
vm.dirty_expire_centisecs = 3000 #如果脏数据在内存中驻留时间超过该值,pdflush 进程在下一次将把这些数据写回磁盘。缺省设置:3000
vm.vfs_cache_pressure = 200 #设置清理inoe/dentry缓存时的优先级
vm.min_free_kbytes = <物理内存大小的8%,单位KB。最大不超过1GB。> #强制 Linux VM 最低保留多少空闲内存(Kbytes)。缺省设置:724(512M 物理内存) 
vm.overcommit_memory = 2 #指定了内核针对内存分配的策略,其值可以是 0、1、2。缺省设置:0 
#0,表示内核将检查是否有足够的可用内存供应用进程使用; 如果有足够的可用内存, 内存申请允许; 否则, 内存申请失败,并把错误返回给应用进程。
#1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 
#2,表示内核允许分配超过所有物理内存和交换空间总和的内存(参照 overcommit_ratio)。 
vm.overcommit_ratio = 85 #如果 overcommit_memory=2,可以过载内存的百分比,通过以下公式来计算系统整体可 用内存。 系统可分配内存=交换空间+物理内存*overcommit_ratio/100 缺省设置:50(%) 

参考:https://cloud.tencent.com/developer/article/1026721

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章