增加定时检测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 //重新载入配置
增加定时检测linux占用内存,及时清理功能的更多相关文章
- (转)增加定时检测linux占用内存,及时清理功能
增加定时检测linux占用内存,及时清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,发现内存跑满了. 再 to ...
- CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)
在使用CentOS时,个别程序的进程会一直增大,直到宕机.但是这种程序本身有没有更好的版本使用(比如ngrok免费就这样,付费的就没这个问题),所以想写一个脚本定时检测一下这个程序的情况,决定是否需要 ...
- Linux服务器内存cache清理
发现cache中占用大量内存,无free内存可用 使用如下命令清理: syncsysctl -w vm.drop_caches=1 转自:http://blog.csdn.net/sky_qing/a ...
- 查看linux占用内存/CPU最多的进程
可以使用一下命令查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个进程 ps -aux | sort -k3nr ...
- <转>查看linux占用内存/CPU最多的进程
转自 http://beginman.cn/page26/ 查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 或者top (然后按下M,注意大写) 查使用 ...
- 记录Redis连接未正确释放,TCP连接过多,造成服务器上部分功能不可用和linux服务器内存一直增加问题
问题1 多人共享开发服务器(windows系统),我们小组有个程序,定时检测mongodb,redis,mysql连接是否正常,程序启动一段时间后,服务器管理人员找到我们说,我们的某个pid的程序把T ...
- 转 linux 服务器内存占用统计
linux 服务器内存占用统计 原文: https://www.cnblogs.com/eaglediao/p/6641811.html 当前内存占用率的计算,是根据top命令显示的Mem.used ...
- linux 服务器内存占用统计
当前内存占用率的计算,是根据top命令显示的Mem.used除以Mem.total得到. Mem.total:表示总物理内存. Mem.used: 表示内核控制的内存数,除了应用程序使用的内存外,还包 ...
- 查看 Linux memory 内存占用
linux 系统内存: 如果系统内存使用过高 就会产生 out of memory exception 现象: 通常 在mongo 默认服务运行资源是不受限制的.也会占用而同一系统运行的其他服务: 当 ...
随机推荐
- MySQL的架构模型
看到大牛用户DB架构部的Keithlan<数据库性能优化之查询优化>,在学习过程发现很多不错的东西,就把它保存下来,分享给大家,因为作者说了一句很经典的话:“if you want to ...
- hdu 5038 (2014北京网络赛G 排序水题)
题意:有n个数字,带入10000 - (100 - ai) ^ 2公式得到n个数,输出n个数中频率最大的数,如果有并列就按值从小到大都输出输出,如果频率相同的数字是全部的n个数,就输出Bad....题 ...
- 如果django里的视图是类(CBV),应该如何写Url的测试用例?
晚上回家测试了很多方式,都不行. 网上搜索找不到答案, 最后还是官方文档最抵用呢. https://docs.djangoproject.com/en/2.1/topics/testing/tools ...
- qString转char*
char *vi_name = new char[vi_rsc_name.length()]; strcpy(vi_name,vi_rsc_name.toStdString().data()); de ...
- yum list失败
搭建了本地yum源,用yum list 测试报如下错误: [root@heguol ~]# yum list error: rpmdb: BDB0113 Thread/process ye67ww ...
- weblogic在64位windows的设置
最近遇到一些问题,需要调整weblogic的内存用于做压力测试,weblogic默认的内存是远远不能满足当前测试需求.由于服务器是64位8G的内存,但是在服务器上安装的jdk和weblogic都是32 ...
- 001 jquery对象与dom对象的转换
1.jQuery对象介绍 2.jQuery对象转换为Dom对象 3.Dom转换为Jquery对象 4.将jquery转换为Dom程序 <!DOCTYPE html> <html> ...
- 【GO基础】main redeclared in this block问题的排查与解决
之前的GO练习环境放在虚拟机内,方便了不少.不过在liteIDE打开的情况下,我迁移了虚拟机,刚好两台机子的VMware版本还不同,这就导致了无法恢复挂起状态,我放弃了挂起. 重新启动后,为了继续练习 ...
- 用scrapy爬取京东的数据
本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中. 一.项目介绍 主要目标 1.使用scrapy爬取京东上所有的手机数据 2.将爬取的数据存储到MongoDB 环境 ...
- 聊聊zookeeper的分布式锁
分布式锁就是多台机器,分布在不同的JVM中,这些不同JVM内的方法需要获取一个唯一锁,比如获取锁之后要把数据写入数据库,保证数据在同一时刻只有一台机器写入数据库. 分布式锁的实现有多种实现方法,除了今 ...