192.168.1.1-路由器设置 | 192.168.0.1-无线路由器设置

如何清除linux的内存缓存,缓冲和交换空间

发布时间:2015-09-17 11:01

 说明

    和其他操作系统一样,linux已经实现了很有效的内存管理机制,但是任何一个进程损坏了系统的内存,那么你就必须清理它,linux提供了一个比较好的方式刷新\清除RAM缓存。
注意:并不是什么时候都需要清除RAM缓存的,大家都知道,linux查找数据都是优先从RAM缓存中查找的,一旦清空缓存,所有的数据都需要从磁盘读取,所以只在需要的时候清空缓存,才是正确的选择。
 
如何清除linux缓存?
    1.只清除PageCache:
 
# sync; echo 1 > /proc/sys/vm/drop_caches
    
    2.清除dentries and inodes
 
# sync; echo 2 > /proc/sys/vm/drop_caches
 
    3.同时清除PageCache和dentries and inodes
 
# sync; echo 3 > /proc/sys/vm/drop_caches
 
对上面的命令的解释:    
    sync将会刷新系统的buffer 缓存。
    根据官方内核文档描述,对drop_caches写入值将会在不杀死任何应用服务的情况下清空缓存。
    在生产环境中建议使用echo 1,因为它会优先清空磁盘缓存。
 
效果展示:
 
使用shell脚本自动在晚上2点清除RAM缓存:
 
vim  clearcache.sh 
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches"
 
# chmod 755 clearcache.sh
# crontab -e
    0  3  *  *  *  /path/to/clearcache.sh
 
如何清除交换空间?
简单的清除可以使用如下的命令
1
# swapoff -a && swapon -a
 
结合上面的脚本:
 
vim  clearcache.sh 
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches" && swapoff -a && swapon -a && 
printf '\n%s\n' 'Ram-cache and Swap Cleared'
 
关于我们 - RSS地图 - 最近更新 - 友情链接 - 网站地图 - 版权声明