CentOS手动释放内存方法

关键词:
问题现象

Centos系统运行长时间后,经常会遇到内存占用率高的问题,特别是我们大数据平台的管理节点:

[root@node1 ~]# free -m

[root@node1 ~]# top

再输入shift+M按照内存排序:可以查看到各个服务的内存占用率,但是将其加起来并没有真正的占用满,说明内存被其他的给占用了。

 

原因分析

当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。 

其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory也是有办法的。

解决办法

释放内存方式:

[root@node1 ~]# sync

[root@node1 ~]# echo 3 > /proc/sys/vm/drop_caches

释放内存后,各个服务的内存占用并没有变,和之前一致;

案例信息

案例类型:经验案例
案例号:201707070005
创建时间:2017年7月7日
更新时间:2017年12月12日
发布时间:2017/12/12 14:20:40
文章密级:游客可见
有效期:长期有效
发布者:周振华 [z09853]
点击次数:943
评论平均得分:0
关键词:内存满
产品线:大数据
产品系列:
产品版本:
故障类型:

附件
常用操作
收藏