聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

关于php-fpm

2015-11-11 01:00 浏览: 1761344 次 我要评论(0 条) 字号:

题记:tmd kill -USR2 并不优雅,正在处理请求的进程当即就被干死了

分析:

  1. kill -USR2 main-pid 时都发生了什么?(把error level调到debug级别可以看到一些信息)
    1. 发送 SIGQUIT(3)给每个子进程,如果进程闲着,那么就直接退出了,如果没闲着,就继续干自己的活,看来 SIGQUIT(3)才更优雅:
    2. 等待 process_control_timeout 时间后,向还活着的子进程发送SIGTERM(15)信号,子进程接到这个信号后就只能死了
    3. 如果process_control_timeout设置时间比较长,而且当前有个请求还需要很长时间才能处理完,那么,main-pid就傻等到process_control_timeout或者请求被处理完才reload,在此期间,将不会有新的请求被处理,而是积压在系统层
  2. 我期望的是:
    1. main-pid接到reload信号后,发送“收工”信号给所属子进程,main-pid开始reload;子进程空闲则自动退出,子进程不空闲则处理完请求退出(不知道系统层有没有还积压的请求)
    2. 简单修改一下可以表现出来我想要的:(但是,在没有阅读全部fpm代码时我不会这么简单修改就线上使用的)

The post 关于php-fpm appeared first on PHPor 的Blog.



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复