php-fpm死机怎么破

Crq
Crq
Crq
423
文章
0
评论
2024年9月18日02:02:00
评论
6 1118字阅读3分43秒

用nginx+php7搭建了一台服务器,因为请求量太大,而且php里面又有挂起的任务,导致php-fpm在高峰期的时候经常死掉, 把php-fpm的最大进程数已经改到1000了,还是吃不消,cpu也是超负荷,每次都要手动重启,太烦人,因此本人写了一个shell脚本,后台监听php-fpm,等达到一定数量让他重启,这样就有效的解决了手动重启,死机问题了。

1.声明文档头跟定义变量
#!/usr/bin/env bash
maxCount=300 #php-fpm最大进程数
basePath=$(cd `dirname $0`; pwd) #脚本所在目录
pidFilePath="$basePath/pid.conf" #pid存放文件
errorFilePath="$basePath/error.txt" #错误日志存放文件
2.定义关键函数
getDateTime(){
    date "+%Y-%m-%d %H:%M:%S"
}
restart(){
    kill-USR2$(cat /usr/local/php/var/run/php-fpm.pid)
}
start(){
    /usr/local/php/sbin/php-fpm
}
stop(){
    kill $(cat /usr/local/php/var/run/php-fpm.pid)
}
stopweb(){
if [ -f "$pidFilePath" ];then
    kill $(cat "$pidFilePath")2>/dev/null
    rm -r "$pidFilePath"
fi
}
main(){
stopweb
echo "$$">>"$pidFilePath"
while((1))
do
    count=$(ps aux | grep -c php-fpm)
    if (("$count">="$maxCount"));then
        restart
        date=$(getDateTime)
        echo "date:$date,maxCount:$maxCount,count:$count">>"$errorFilePath"
    fi
    sleep 10
done
}
3.加入启动参数
case $1 in
    "restart") restart
    ;;
    "start") start
    ;;
    "stop") stop
    ;;
    "run") main
    ;;
    "stopweb") stopweb
    ;;
    *) echo "cmd error!"
    ;;
esac
4.终止脚本
exit 0
运行命令
./webserver restart #重启php-fpm
./webserver start #开启php-fpm
./webserver stop #停止php-fpm
setsid ./webserver run & #开启监听,后台运行&
./webserver stopweb #停止监听
weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年9月18日02:02:00
  • 转载请注明:https://www.cncrq.com/10771.html
大神教你在 Linux 上安装和使用 Docker Linux教程

大神教你在 Linux 上安装和使用 Docker

容器现在风靡于 IT 界 —— 这很好理解。容器是轻量级的,包含应用运行所需所有东西(代码、库、运行时环境、系统设置,以及依赖关系)的独立的包。每个容器都部署于它自己的 CPU、内...
让你在终端输入密码时显示星号 Linux教程

让你在终端输入密码时显示星号

当你在 Web 浏览器或任何 GUI 登录中输入密码时,密码会被标记成星号 ******** 或圆点符号 ••••••••••••• 。这是内置的安全机制,以防止你附近的用户看到你...
LINUX系统下关闭防火墙 Linux教程

LINUX系统下关闭防火墙

所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使In...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: