码迷,mamicode.com
首页 > 系统相关 > 详细

在CentOS6.9上Shell脚本定时释放内存cache

时间:2019-04-28 18:38:03      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:mkdir   配置   etc   定时执行   syn   程序设计   调度   man   图片   

一、写Shell脚本

mkdir -p /var/script/

vim /var/script/freemem.sh

写入以下Shell脚本:

#!/bin/bash

# 当前已使用的内存大小 

used=`free -m | awk ‘NR==2‘ | awk ‘{print $3}‘`

# 当前剩余的内存大小

free=`free -m | awk ‘NR==2‘ | awk ‘{print $4}‘`

 

echo "===========================" >> /var/log/mem.log

date >> /var/log/mem.log

echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

 

#if [ $free -le 100 ] ; then

sync && echo 1 > /proc/sys/vm/drop_caches

sync && echo 2 > /proc/sys/vm/drop_caches

sync && echo 3 > /proc/sys/vm/drop_caches

echo "OK" >> /var/log/mem.log

#else

#  echo "Not required" >> /var/log/mem.log

#fi

说明:

其中/proc/sys/vm/drop_caches中的值有4个,分别为0-3:

0 – 不释放

1 – 释放页缓存

2 – 释放dentries和inodes

3 – 释放所有缓存

二、赋予Shell脚本可执行权限。

 chmod u+x freemem.sh

技术图片

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

(1)Crontab 介绍

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

(2)查看/etc/crontab文件

vim  /etc/crontab

技术图片

在crontab中增加定时任务

(3)文件/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 * * * *  /var/script/freemem.sh

(4)crontab服务的启动关闭

sbin/service crond start   # 启动服务

/sbin/service crond stop   # 关闭服务

/sbin/service crond restart   # 重启服务

/sbin/service crond reload    # 重新载入配置

三、将脚本添加到crond任务,定时执行,每天0点释放一次内存,这个时间可以根据自己需要修改设置。

echo "00 00 * * * root /var/script/freemem.sh" >> /etc/crondtab

这种用脚本自动释放缓存的方法在生产环境中是不建议采用的,要是内存不够用,最好还是去找找其他的原因,比如程序设置是否合理,是否突发访问量很大,或者程序设计不合理导致内存溢出等,毕竟操作系统本身设计会考虑各方面的问题,强制腾出cache的大小,可能只是把问题给暂时屏蔽了,不利于判断问题的所在。

在CentOS6.9上Shell脚本定时释放内存cache

标签:mkdir   配置   etc   定时执行   syn   程序设计   调度   man   图片   

原文地址:https://www.cnblogs.com/opsprobe/p/10785568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!