> CentOS > CentOS入门 >

Centos 内存占满手动释放内存

      服务器前几天运行了几个脚本,今天用 free -m 查看,发现内存就要跑满了,平时没有运行脚本起码有60%左右是闲置状态,先top,然后按下shift+m,也就是按内存占用百分比排序发现排在第一的进程,才占用5.0%,无奈内存不知道被谁吃了,只好Google一下。

      Google:据说是Centos为了提高效率,把部分使用过的文件缓存到了内存里,而我运行的脚本又在不停的访问网页,读取文件,Centos又为了效率不停的把文件缓存到内存里,而且又不释放,所以就造成了内存慢慢被占满,我又不需要这样的文件性能,那就可以释放。

解决方案:释放内存

1、查看释放缓存参数

cat /proc/sys/vm/drop_caches

系统默认显示为0,0为默认值,即表示不释放。

2、将系统缓存区中的数据写入磁盘中:

包括已修改的i-node、已延迟的块I/O和读写映射文件

sync

3、修改释放缓存参数

echo 3 > /proc/sys/vm/drop_caches

4、不重启机器使配置改生效

sysctl -p

执行以上操作以后,神清气爽,内存又回到了平时的60%闲置状态。

 

(责任编辑:IT)