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

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

#sync

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

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

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

释放内存脚本如下:

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

转载于:https://www.cnblogs.com/happyday56/p/9111279.html

增加定时检测linux占用内存,及时清理功能相关推荐

  1. Linux 占用内存过大,程序被kill--解决方案

    查看被杀死的进程号:运行dmesg命令 查看内存占用最多进程PID:top (然后按下M,注意大写) 为了保护重要进程不被oom-killer掉,运行: echo -17 > /proc/482 ...

  2. linux 占用内存 脚本,如何利用Bash脚本监控Linux的内存使用情况

    前言 目前市场上有许多开源监控工具可用于监控 Linux 系统的性能.当系统达到指定的阈值限制时,它可以发送电子邮件警报.它可以监视 CPU 利用率.内存利用率.交换利用率.磁盘空间利用率等所有内容. ...

  3. linux 占用内存 脚本,linux内存测试(占用)脚本

    内存测试脚本,有bug,继续更新中... #!/bin/bash ################################################################ # ...

  4. linux 系统日志 查看被杀掉的进程(占用内存过大)

    基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉. ...

  5. Cache占用过多内存导致Linux系统内存不足问题排查

    问题描述 Linux服务器内存使用量超过阈值,触发报警. 问题排查 首先,通过free命令观察系统的内存使用情况,显示如下: total       used       free     share ...

  6. linux db2sysc 内存,db2sysc进程占用linux内存持续增长,请各位指点。

    该服务器近期做过的变更情况: 变更前,使用 sar -r 1 3 看内存使用率服务器内存使用率一直是70% 该服务器原为独立物理服务器,经过虚拟化迁移到EXS上成为虚拟服务器.迁移后发现swap无法启 ...

  7. 自动清理内存linux,linux 过滤内存使用率并于计划任务结合来自动清理内存缓存...

    过滤出内存使用率并进行判断 #!/bin/bash echo "###cleand free_cache script########" #memory usage mem_pus ...

  8. linux内存过高怎样清理,如何处理Linux服务器内存过高?

    作者:张岩峰,转载请注明出处     笔名:云烟旧梦 51CTO课程地址:https://edu.51cto.com/lecturer/12750547.html    Linux技术交流群:1127 ...

  9. Valgrind 检测linux上c++内存泄露

    Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...

最新文章

  1. python界面设计实例-Python GUI项目实战:主窗体的界面设计与实现
  2. web前端之异常/错误监控
  3. 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符
  4. MySQL学习笔记(6)之设计范式
  5. pojo 带参构造函数_带有Java Pojo作为输入输出示例的AWS Lambda函数
  6. 【转】C++学习二 vector的用法(使用sort对于vector排序)
  7. python简单超级马里奥游戏下载大全_Python实现超级玛丽游戏系列教程02玛丽走跑...
  8. mqtt 客户端和服务端搭建及基本使用详解
  9. 基于STM32F103完成对SD卡的数据读取操作
  10. 多播(组播)、单播、任播和广播
  11. STM32单片机基础(理论概念知识)
  12. 北航学堂Android客户端Beta阶段发布说明
  13. IT蚁族:蜗居和逃离
  14. HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结
  15. LDA变分法和采样法
  16. android+高德地图教程,Android高德地图开发(三)地图简单操作
  17. 求n阶矩阵的逆矩阵(C语言实现)
  18. golang学习笔记
  19. C/C++趣味代码-------狸猫换太子
  20. 开源“大地震”下,华为如何复制 Google 模式?

热门文章

  1. openssl evp 对称加密(AES_ecb,ccb)
  2. python requests模块中返回时间elapsed解析
  3. Mysql创建用户和给用户授权
  4. 1033. 旧键盘打字(20)-浙大PAT乙级真题
  5. odbc 动态创建 mysql_如何动态创建ODBC数据源
  6. Microsoft.XMLHTTP基本用法
  7. kafka python client:PyKafka vs kafka-python
  8. Oracle 用户,角色,权限的sql语句
  9. 20190509杂题选讲
  10. PowerEdge r730xd 安装centos 6.7