一、服务内存使用量监控脚本
内存监控脚本,监控服务如YourServer内存使用是否过量,当内存使用超过阈值,重启服务。
新建./mointer_mem_kill.sh
,并赋予可执行权限
#!/bin/bash
interval=120 #设置采集间隔120s
mem_threshold=27648 # 大于27G内存时kill待进程,进程通过supervisor自动重启
condition=true
while $condition
do
pid=$(ps -ef |grep YourServer |grep -v "grep"| awk '{print $2}') #获取进程pid
mem_total=$(cat /proc/meminfo |grep -w MemTotal | awk '{print $2}')
mem_free=$(cat /proc/meminfo |grep -w MemFree | awk '{print $2}')
mem_buffers=$(cat /proc/meminfo |grep -w Buffers | awk '{print $2}')
mem_cached=$(cat /proc/meminfo |grep -w Cached | awk '{print $2}')
mem_used=$[($mem_total-$mem_free-$mem_buffers-$mem_cached)/1024] ## 计算使用内存
echo $mem_used
if [ $mem_used -gt $mem_threshold ];
then
echo $(date +"%y-%m-%d %H:%M:%S") >> log.txt ## 记录内存超阈值异常至log文件
echo "内存超27G" >> log.txt
kill -9 $pid
fi
sleep $interval
done
二、内存监控脚本使用
2.1 如何启动内存监控脚本
nohup ./data_center_mem_kill.sh > /dev/null 2> /dev/null &
2.2 如何杀掉监控程序.
方法1
ps auxf|grep 'mointer_mem_kill.sh'|grep -v grep|awk '{print $2}'|xargs kill -9
方法2
ps -ef |grep mointer_mem_kill.sh |grep -v "grep"
kill -9 pid