linux释放内存脚本,解决ubuntu老是死机问题

来源:互联网 发布:tor网络 百科 编辑:程序博客网 时间:2024/04/28 22:38

前些日子遇到ubuntu不释放内存的问题,刚好碰到这篇文章,所以便转载记录一下。

ubuntu的图形界面用的是gnome,我发现ubunut用gnome老是死,如果工作八个小时,要死二,三次搞得我很郁闷。家里的centos用的也是gnome,就不会死,并且家里电脑内存还小。

root@ubuntu:/home/zhangying# free -m                total       used       free     shared    buffers     cached  Mem:          3449       2123       1325          0        576        777  -/+ buffers/cache:        769       2680  Swap:          254          0        254  

被buffers,cached等占去的内存,释放的很慢,导致可用内存不够用。公司电脑的内存可是3.5G啊,这都不够它占的,真是无语。

解决方法:

1 vim free.sh建个脚本

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

简单解释一下,查看一下内存使用情况,找到内存所在行。判断可用内存大小,如果小于300M,就释放内存。drop_caches文件中就一个0,这里为什么要写入一个3呢?

官方解释如下:

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.

2 加到crontab中去
sudo su
crontab -e

*/05 * * * * /home/zhangying/free.sh  

注意:

1 crontab要以root的权限去执行,普通用户是没有drop_caches写的权限的。

2 根据系统的不同,/05 * * * /home/zhangying/free.sh,每隔5分钟执行一次,有的写法是/5 * * * /home/zhangying/free.sh,这种方式在ubuntu10.10下,我试了不行。

加了这个脚本后,基本上没死过了。哈哈。

感谢“海底苍鹰(tank)”分享。
原文地址:http://blog.51yip.com/linux/1310.html

0 0
原创粉丝点击