• 增加定时检测linux占用内存,及时清理功能


    centos为了提高效率,把部分使用过的文件缓存到了内存里。

    如果是这样的话,我又不需要这样的文件性能,那就可以释放。如下两个命令就可以:

    #sync

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

    内存释放后,就占用很低了,

    写一个脚本,然后使用crontab定时没分钟执行一次,检测内存量使用超过80%的时候报警,释放内存,

    释放内存脚本如下:

    [html] view plain copy
     
    1. #!/bin/bash  
    2.   
    3. #系统分配的区总量   
    4. mem_total=`free -m | awk 'NR==2' | awk '{print $2}'`   
    5.   
    6. #当前剩余的大小   
    7. mem_free=`free -m | awk 'NR==3' | awk '{print $4}'`  
    8.    
    9. #当前已使用的used大小   
    10. mem_used=`free -m | grep Mem | awk '{print  $3}'`   
    11.    
    12. if (($mem_used != 0)); then   
    13.    
    14. #如果已被使用,则计算当前剩余free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0   
    15. mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`   
    16. DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"  
    17. echo $DATA >> /var/log/mem_detect.log  
    18. #设置的告警值为20%(即使用超过80%的时候告警)。   
    19. mem_warn=0.20   
    20.    
    21. #当前剩余百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )   
    22. mem_now=`expr $mem_per > $mem_warn`   
    23.    
    24. #如果当前使用超过80%(即剩余小于20%,上面的返回值等于0),释放内存  
    25. if (($mem_now == 0)); then   
    26. sync  
    27. echo 1 > /proc/sys/vm/drop_caches  
    28. echo 2 > /proc/sys/vm/drop_caches  
    29. echo 3 > /proc/sys/vm/drop_caches  
    30. #将release memory OK !写入temp文件夹的memstat_日期.log日志中  
    31. echo "--->release memory OK ! " >>temp/memstat_$(date +%Y%m%d_%H%M%S).log  
    32.   
    33. fi  
    34. fi   

    下面说一下怎么使用定时:

    一.  Crontab 介绍

    crontab命令的功能是在一定的时间间隔调度一些命令的执行。

    二.查看/etc/crontab文件

    vim  /etc/crontab

    在crontab中增加定时任务

    三.文件/etc/crontab中每行任务的描述格式如下:

    minute hour day month dayofweek command

        minute - 从0到59的整数 
        hour - 从0到23的整数 
        day - 从1到31的整数 (必须是指定月份的有效日期)
        month - 从1到12的整数 (或如Jan或Feb简写的月份)
        dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
        command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)

    如果是每五分钟执行一次可改为:

    */5 * * * * /home/dbbackup/db2backup.sh

    四.crontab服务的启动关闭

    sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置

  • 相关阅读:
    组件
    Django
    面向对象
    异常处理
    模块1
    Java中权限设置
    java反射机制
    JavaScript提高篇之面向对象之单利模式工厂模型构造函数原型链模式
    JavaScript提高篇之预解释作用域以及this原理及其应用
    js-引用类型-Array
  • 原文地址:https://www.cnblogs.com/happyday56/p/9111279.html
Copyright © 2020-2023  润新知