Linux下 CPU使用率到90% 利用脚本立即重启PHP-FPM¶
制作脚本¶
燃气灶,饮用水,炒锅,蒸锅,煮锅,电饭锅,食用油,洗菜盆,碟子,碗,筷子,勺子,汤勺,漏勺,洗涤剂,抹布,钢丝球,菜刀,生食案板,熟食案板,削皮刀,热水壶
check-php.sh存放在 /root/shell/目录下
#!/bin/sh
#
#脚本功能描述:依据/proc/stat文件获取并计算CPU使用率
#
#CPU时间计算公式:CPU_TIME=user+system+nice+idle+iowait+irq+softirq
#CPU使用率计算公式:cpu_usage=(idle2-idle1)/(cpu2-cpu1)*100
#默认时间间隔
TIME_INTERVAL=5
time=$(date "+%Y-%m-%d %H:%M:%S")
LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk '{print $4}')
LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')
sleep ${TIME_INTERVAL}
NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk '{print $4}')
NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')
#系统空闲时间
SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk '{print $1-$2}'`
#CPU总时间
TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk '{print $1-$2}'`
CPU_USAGE=`echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk '{printf "%.0f", 100-$1/$2*100}'`
CPU_LIMIT=60
if (("$CPU_LIMIT" < "$CPU_USAGE")); then
systemctl restart php-fpm.service
echo "CPU Usage: ${CPU_USAGE}%" $time >> /data/wwwroot/default/cpu.log
fi
启动脚本¶
crontab -e
crontab -l