Linux手动释放cache缓存

一、遇到的问题

服务器CPU占用飙升报警,后发现内存爆满,程序停止后依然有大半内存释放不掉

二、查看哪部分内存没释放,使用vmstat命令

   #  vmstat 2

观察到cache的内存无法释放,考虑手工释放cache内存

三、手工释放cache内存

   1、首先,/proc/sys/vm/drop_caches的值,默认为0。

# cat /proc/sys/vm/drop_caches
0
2、 手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

# sync
3、将/proc/sys/vm/drop_caches值设为3

# echo 3 > /proc/sys/vm/drop_caches
# cat /proc/sys/vm/drop_caches
3
四、问题解决

       再来运行free命令,或vmstat命令发下内存已成功释放。







版权声明:本文为GKQQQ原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。