自动释放内存脚本.小内存VPS的福音

第一种:手动释放,不想用脚本的,自己折腾的用户

1
free -m

/查看当前可用内存/

1
cat /proc/sys/vm/drop_caches

/proc是一个虚拟文件系统,可以通过修改/proc中的文件,来对当前kernel的行为做出调整,cat命令只是显示当前释放内存等级,一共三级.也就是数字3,等级最高..释放最彻底/sync /sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件/

1
echo 3 > /proc/sys/vm/drop_caches

呐,数字3的含义在此了,释放pagecache, dentries and inodes这三个家伙/

1
cat /proc/sys/vm/drop_caches

同上,查看是否修改正确啦,返回一个3,证明成功啦/

1
free -m

查看下可用内存是不是增加了不少/
到这就结束了,只是敲了几个命令..重启后就该怎样还怎样了..需要开机或者定时释放内存的请往下看喽..

第二种脚本释放方法,定时清理内存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

vi /home/sh/god.sh
****************************************************
#!/bin/bash
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
if [ $free -le 100 ] ; then
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "OK" >> /var/log/mem.log
else
echo "Not required" >> /var/log/mem.log
fi
****************************************************

以上星号间的复制进去…然后保存..VI命令应该都会的吧.不行就WINSCP自己按路径建立也可以.

继续敲命令

1
chmod +x /home/sh/god.sh

(这行是为了避免有些人执行的时候提示权限不足,permin dennied类似这种错误提示.有报错就加.没有可不用)

1
crontab -e

/也许有人会在/etc/crontab里改,但试过后发现开机并没有效果…这个有些VPS可能没有预装..自己安装先./
最后一行加入

1
/1 * * * * /home/sh/god.sh /*

意思是每一分钟执行下脚本清理下内存,自行设置间隔,具体用法自行谷歌啦,嫌麻烦斜杠后面的1改0~59之间的数字即可/
完毕,reboot重启…然后等个1分钟后..free -m查看下即可..记得对比下.小内存的特别明显..没有优化前,群主我的used行,free只有6,cache到是很多..但锐速就是提示不能分配嘛..有啥办法捏..用此脚本一劳永逸..128M也能在锐速界横着走了好嘛

第三种

前面都一样,只不过脚本内容变了…
改为

1
free -m |grep -i mem |awk '{if($4 < 100){ printf("3") > "/proc/sys/vm/drop_caches"}}';

含义是,先用free -m查看可用内存,如果可用小于100M(聪明的同学看粗来了,数字100可以自行更改呦),则执行清理操作.

-------------���Ľ�����л�����Ķ�-------------
0%