Linux服务器运行一段时间后内存会累积,累积多了会导致系统负载不稳定,需要定时的去释放。
linux释放内存方法:
1. 首先使用free -m查看剩余内存
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 2773 178 0 130 1097
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
2. 执行sync命令
使用sync命令以确保文件系统的完整性,sync
命令运行 sync
子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的
i-node、已延迟的块 I/O 和读写映射文件。
linux-8v2i:~ # sync
3. 修改/proc/sys/vm/drop_caches
echo 3 >
/proc/sys/vm/drop_caches
4.再使用free
-m查看剩余内存,情况如下:
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 1773 2325 0 0 80
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
Linux服务器内存释放工作也就轻而易举的完成了。
Linux内存释放脚本:
#! /bin/sh
freemem=$(cat /proc/meminfo | grep "MemFree" | awk
'{print $2}')
if [ $freemem -le 409600 ]
then
date >>
/var/log/mem.log
free -m >>
/var/log/mem.log
sync
sync
echo 3 >
/proc/sys/vm/drop_caches
free -m >>
/var/log/mem.log
fi