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

张映 发表于 2011-06-02

分类目录: linux

标签:, ,

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下,我试了不行。

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



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/linux/1310.html

3 条评论

  1. will 留言

    我在 10.04下面 。说明中说:
    #To define the time you can provide concrete values for
    # minute (m), hour (h), day of month (dom), month (mon),
    # and day of week (dow) or use '*' in these fields (for 'any').#
    # Notice that tasks will be started based on the cron's system
    # daemon's notion of time and timezones.
    #
    # Output of the crontab jobs (including errors) is sent through
    # email to the user the crontab file belongs to (unless redirected).
    #
    # For example, you can run a backup of all your user accounts
    # at 5 a.m every week with:
    # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

    我 想问问 */05 是不是一个 除法运算 ? 因为我有看到这样的用法 :
    5,15,30,45 * * * * 表示每小时的 这四个分钟 时刻,执行一次命令。

  2. 张映 留言

    */05表示每隔5分钟执行一次,如果是一分钟执行一次,是不是要写1,2,3,4.....60呢,如果是redhat的话,每隔5分钟,*/5而不是*/05,根系统有关系。

  3. peter 留言

    您好,您的解决方法帮助了我。请问一下,您是否可是告诉我,您的官方解答如何得到的呢,gupingchang@126.com。非常感谢。。