在 Linux 上如何清除内存的 Cache、Buffer 和交换空间
原创
©著作权归作者所有:来自51CTO博客作者小陈运维的原创作品,请联系作者获取转载授权,否则将追究法律责任
如何在 Linux 中清除缓存(Cache)?
每个 Linux 系统有三种选项来清除缓存而不需要中断任何进程或服务。
(LCTT 译注:Cache,译作“缓存”,指 CPU 和内存之间高速缓存。Buffer,译作“缓冲区”,指在写入磁盘前的存储在内存中的内容。在本文中,Buffer 和 Cache 有时候会通指。)
仅清除页面缓存(PageCache)
清除目录项和inode
清除页面缓存,目录项和inode
#!/bin/bash# 注意,我们这里使用了 "echo 3",但是不推荐使用在产品环境中,应该使用 "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches
如何清除Linux的交换空间?
如果你想清除掉的空间,你可以运行下面的命令:
此外,了解有关风险后,您可以将上面的命令添加到cron中。
现在,我们将上面两种命令结合成一个命令,写成正确的脚本来同时清除RAM缓存和交换空间。
#echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'或#'echo 3 > /proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'
在测试上面的命令之前,我们在执行脚本前后运行“free -m” 来检查缓存。