php-fpm进程平滑重启与process_control_timeout参数

本文介绍了php-fpm的平滑重启概念,避免在重启过程中导致未完成请求的中断,以及process_control_timeout参数的作用。通过测试发现,合理设置process_control_timeout值能确保php-fpm平滑重启,等待子进程处理完当前请求。
摘要由CSDN通过智能技术生成

何为平滑重启?
当你写该了配置需要重启php-fpm才生效,如果此时php-fpm中有请求还没有处理完,暴力重启php-fpm服务会导致当前请求执行终止,轻则502,重则会产生数据异常,因为程序执行到一半被中断了,除非你对数据的处理都做了很好的安全支持。所以,我理解的平湖重启应该是每个php-fpm子进程处理完最后一个请求就自动退出。

假设100个php-cgi进程中有40个进程正在处理PHP程序,而剩余的60个进程处于闲置状态,php-fpm接到平滑重启信号后,会kill掉60个闲置进程,然后新启动100个进程,新请求交给新启动的进程来处理,而那40个进程,只有等到它们处理完自己当前正在执行的PHP程序后,才会被干掉。

方法

INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

先找到php-fpm master进程id

cat /usr/local/php/sbin/php-fpm
903

kill -USR2 903 或者 kill -SIGUSR2 903

那么,这样真的会是平滑的吗?

测试代码:test.php

<?php

$file = 'log.log';

for($i=0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值