增加定时检测linux占用内存,及时清理功能
centos为了提高效率,把部分使用过的文件缓存到了内存里。
如果是这样的话,我又不需要这样的文件性能,那就可以释放。如下两个命令就可以:
#sync
#echo 3 > /proc/sys/vm/drop_caches
内存释放后,就占用很低了,
写一个脚本,然后使用crontab定时没分钟执行一次,检测内存量使用超过80%的时候报警,释放内存,
释放内存脚本如下:
- #!/bin/bash
- #系统分配的区总量
- mem_total=`free -m | awk 'NR==2' | awk '{print $2}'`
- #当前剩余的大小
- mem_free=`free -m | awk 'NR==3' | awk '{print $4}'`
- #当前已使用的used大小
- mem_used=`free -m | grep Mem | awk '{print $3}'`
- if (($mem_used != 0)); then
- #如果已被使用,则计算当前剩余free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0
- mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`
- DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"
- echo $DATA >> /var/log/mem_detect.log
- #设置的告警值为20%(即使用超过80%的时候告警)。
- mem_warn=0.20
- #当前剩余百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )
- mem_now=`expr $mem_per \> $mem_warn`
- #如果当前使用超过80%(即剩余小于20%,上面的返回值等于0),释放内存
- if (($mem_now == 0)); then
- sync
- echo 1 > /proc/sys/vm/drop_caches
- echo 2 > /proc/sys/vm/drop_caches
- echo 3 > /proc/sys/vm/drop_caches
- #将release memory OK !写入temp文件夹的memstat_日期.log日志中
- echo "--->release memory OK ! " >>temp/memstat_$(date +%Y%m%d_%H%M%S).log
- fi
- 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占用内存,及时清理功能相关推荐
- Linux 占用内存过大,程序被kill--解决方案
查看被杀死的进程号:运行dmesg命令 查看内存占用最多进程PID:top (然后按下M,注意大写) 为了保护重要进程不被oom-killer掉,运行: echo -17 > /proc/482 ...
- linux 占用内存 脚本,如何利用Bash脚本监控Linux的内存使用情况
前言 目前市场上有许多开源监控工具可用于监控 Linux 系统的性能.当系统达到指定的阈值限制时,它可以发送电子邮件警报.它可以监视 CPU 利用率.内存利用率.交换利用率.磁盘空间利用率等所有内容. ...
- linux 占用内存 脚本,linux内存测试(占用)脚本
内存测试脚本,有bug,继续更新中... #!/bin/bash ################################################################ # ...
- linux 系统日志 查看被杀掉的进程(占用内存过大)
基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉. ...
- Cache占用过多内存导致Linux系统内存不足问题排查
问题描述 Linux服务器内存使用量超过阈值,触发报警. 问题排查 首先,通过free命令观察系统的内存使用情况,显示如下: total used free share ...
- linux db2sysc 内存,db2sysc进程占用linux内存持续增长,请各位指点。
该服务器近期做过的变更情况: 变更前,使用 sar -r 1 3 看内存使用率服务器内存使用率一直是70% 该服务器原为独立物理服务器,经过虚拟化迁移到EXS上成为虚拟服务器.迁移后发现swap无法启 ...
- 自动清理内存linux,linux 过滤内存使用率并于计划任务结合来自动清理内存缓存...
过滤出内存使用率并进行判断 #!/bin/bash echo "###cleand free_cache script########" #memory usage mem_pus ...
- linux内存过高怎样清理,如何处理Linux服务器内存过高?
作者:张岩峰,转载请注明出处 笔名:云烟旧梦 51CTO课程地址:https://edu.51cto.com/lecturer/12750547.html Linux技术交流群:1127 ...
- Valgrind 检测linux上c++内存泄露
Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...
最新文章
- python界面设计实例-Python GUI项目实战:主窗体的界面设计与实现
- web前端之异常/错误监控
- 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符
- MySQL学习笔记(6)之设计范式
- pojo 带参构造函数_带有Java Pojo作为输入输出示例的AWS Lambda函数
- 【转】C++学习二 vector的用法(使用sort对于vector排序)
- python简单超级马里奥游戏下载大全_Python实现超级玛丽游戏系列教程02玛丽走跑...
- mqtt 客户端和服务端搭建及基本使用详解
- 基于STM32F103完成对SD卡的数据读取操作
- 多播(组播)、单播、任播和广播
- STM32单片机基础(理论概念知识)
- 北航学堂Android客户端Beta阶段发布说明
- IT蚁族:蜗居和逃离
- HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结
- LDA变分法和采样法
- android+高德地图教程,Android高德地图开发(三)地图简单操作
- 求n阶矩阵的逆矩阵(C语言实现)
- golang学习笔记
- C/C++趣味代码-------狸猫换太子
- 开源“大地震”下,华为如何复制 Google 模式?
热门文章
- openssl evp 对称加密(AES_ecb,ccb)
- python requests模块中返回时间elapsed解析
- Mysql创建用户和给用户授权
- 1033. 旧键盘打字(20)-浙大PAT乙级真题
- odbc 动态创建 mysql_如何动态创建ODBC数据源
- Microsoft.XMLHTTP基本用法
- kafka python client:PyKafka vs kafka-python
- Oracle 用户,角色,权限的sql语句
- 20190509杂题选讲
- PowerEdge r730xd 安装centos 6.7