Linux释放内存脚本
vi recover_mem.sh #!/bin/bash
##################
#author:rrhelei@126.com#
##################
#系统分配的区总量
mem_total=`free -m |grep Mem | awk '{print $2}'`
#当前剩余的free大小
mem_free=`free -m |grep Mem | 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
sync
echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries andinodes:
echo 3 > /proc/sys/vm/drop_caches
fi
fi
before sh -x recover_mem.sh
[root@HE3]# free  -m
             total       used       free     shared    buffers     cached
Mem:         15948      14774       1173          0        130      7926
-/+ buffers/cache:       6717       9231
Swap:            0          0          0
after sh -x recover_mem.sh
[root@HE3]# free -m
             total       used       free     shared    buffers     cached
Mem:         15948       6603       9344          0          1        18
-/+ buffers/cache:       6582       9365
Swap:            0          0          0
可以看出,cache的缓存已被释放。值得注意的是,cache被释放后,对mysql性能影响比较明显的,因为mysql需要重新cache,因此该脚本仅作救急用,只有当free中剩余的内存低于20%的时候,该脚本才会执行,以防止oom kill掉mysql进程,最直接的手段还是加内存。
本文出自 “岁伏” 博客,请务必保留此出处http://suifu.blog.51cto.com/9167728/1828050
Linux释放内存脚本的更多相关文章
- 如何为linux释放内存和缓存
		
如何为linux释放内存和缓存_华陌飞尘_新浪博客 如何为linux释放内存和缓存 (2011-10-20 10:49:01) 标签: linux swap me ...
 - Linux释放内存小脚本
		
最近发现渣渣ECS内存总是不够用,内存太小一不小心就用完了,用完就用完吧,内存用来做cache是可以快一些,但是内存用完了老是一顿一顿的卡,实在有点受不了,于是就写了释放内存的小脚本,觉得卡了就释放下 ...
 - Linux释放内存空间
		
Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中 ...
 - Linux释放内存
		
在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作了. ...
 - linux释放内存命令
		
1.首先查看linux内存使用 #free -m 2.把内存数据同步到硬盘#sync 3.修改 /proc/sys/vm/drop_caches文件 #echo 3 > /proc/sys/vm ...
 - linux释放内存的命令
		
释放cache: sync echo 3>/proc/sys/vm/drop_caches 释放swap: sync swapoff -a swapon -a 版权声明:本文为博主原创文章,未经 ...
 - linux 释放内存及查看内存命令
		
查看内存使用情况: free -m 清理内存: echo 1 > /proc/sys/vm/drop_caches 再次查看内存使用情况 free -m 查看内存条数命令: dmidecode ...
 - (转)增加定时检测linux占用内存,及时清理功能
		
增加定时检测linux占用内存,及时清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,发现内存跑满了. 再 to ...
 - CentOS下SWAP分区建立及释放内存详解
		
方法一: 一.查看系统当前的分区情况: >free -m 二.创建用于交换分区的文件: >dd if=/dev/zero of=/whatever/swap bs=block_size ( ...
 
随机推荐
- angular Jsonp的坑
			
angular 为了解决跨域问题 一些第三方接口会提供jsonp来调用,需要使用callback=JSON_CALLBACK来处理 这个时候问题来了,有些借口是不支持callback里面带有点语法的, ...
 - StarUML---推荐一款UML工具(很好很强大)
			
转自:http://www.cnblogs.com/daizhj/archive/2008/04/14/1153121.html 上周我的一个朋友,同时也是目前公司的同事给我推荐了一款UML工具,开始 ...
 - GtkImageMenuItem
			
做了个工具条,每次点arrow出来的菜单都没图标,郁闷;查来查去,看源码,看css,最后知道GtkAction缺省就是对应GtkImageMenuItem,再一试,跟toolbar无关,换menu也不 ...
 - how to enable #ifdef macro in the command line of make?
			
Compilers normally use the -D flags eg Code: test.o: test.cpp $(CC) $(CFLAGS) -DTEST1 test.cpp -o $@
 - sqlDataAdapter的FillSchema用法
			
摘自于网络:http://blog.csdn.net/bupt_zoucq/article/details/6653385 FillSchema是用来向DataTable中填入详细的元数据信息的,例如 ...
 - Bessie Goes Moo
			
Bessie Goes Moo 题目描述 Farmer John and Bessie the cow love to exchange math puzzles in their free time ...
 - 在js中如何得到上传文件的大小。
			
<html> <head> <script language="javascript"> function getSize() { ...
 - PAT 天梯赛 L2-004 这是二叉搜索树吗?
			
递归判断+建树 题目链接:https://www.patest.cn/contests/gplt/L2-004 题解 二叉搜索树的特点就是其根节点的值是位于左右子树之间的,即大于左子树的所有值,但是小 ...
 - 如何高效的用判断用js判断ie6
			
用js判断ie6的方法有很多,如: 1. var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest ...
 - Lua学习系列(五)
			
calling C functions from Lua 5.2 这篇文章也不错: http://blog.csdn.net/x356982611/article/details/26688287 h ...