怎样释放linux的内存Cache, Buffer和Swap空间?

作者: meilin
位于: 数码电子

与任何操作系统一样,Linux也实施有效的内存管理,甚至做的更好。但如果有程序蚕食内存,你想清理它,Linux提供一种有效的释放高速缓存方法。

怎样清理Linux缓存?

每一个Linux系统都有三种能在不中断程序或服务的情况下释放缓存的选择

1、只清理PageCache。

# sync; echo 1 > /proc/sys/vm/drop_caches

2、清理dentries和inodes。

# sync; echo 2 > /proc/sys/vm/drop_caches

3、清理PageCache, dentries和inodes。

# sync; echo 3 > /proc/sys/vm/drop_caches

下面对上述命令进行解释。

sync”能释放文件系统缓冲区(buffer)。命令用“”分隔继续运行。在执行下一个顺序命令前,命令行等待每一个命令结束。如内核文件所提,写入drop_cache能在不杀死应用或服务的情况下清理缓存(cache),命令“echo”做的工作就是写入文件。

如果需要清理磁盘缓存,第一个命令对企业和生产最安全,因为“…echo 1 > ….”只清理PageCache。除非知道自己在做什么,否则不建议在生产过程中用上面提到的第三种命令“…echo3 >”,因为它会清理PageCache,dentries和inodes。

释放Linux内核使用的缓冲区(Buffer)和缓冲(Cache)好不好?

在应用不同设置并想检查时,你可能需要清理缓冲缓存。按照上述说明释放缓存不需要重启系统,因此没有停机时间。

Linux被设计成在检索磁盘之前首先查看磁盘缓存。如果能在缓存找到了资源,请求不会到达磁盘。如果清除了缓存,系统就会到磁盘寻找资源。此外,在缓存清理时,系统会放慢几秒钟,因为系统请求的每一个资源都需要重新加载进入磁盘缓存。