php-fpm (pool default) executing too slow
近期管理的一个ecshop网站经常将vps拖死,vps用的是nginx+php-fpm+mysql,经查询php-fpm的slow日志发现如下错误,类似的错误有9-10条:fpm_request_check_timed_out(),line146:child17959,script'/www/www.XXX.com//user.php'(pooldefau...
·
近期管理的一个ecshop网站经常将vps拖死,vps用的是nginx+php-fpm+mysql,经查询php-fpm的slow日志发现如下错误,类似的错误有9-10条:
- fpm_request_check_timed_out(), line 146: child 17959, script
- '/www/www.XXX.com//user.php' (pool default) executing too slow (5.101559 sec),
- logging Sep 28 11:33:47.052981 [NOTICE] fpm_got_signal(), line 48:
- received SIGCHLD
判断是mysql查询时间超过5秒导致,看了下php-fpm.conf的设置,我给php-fpm开的子进程为8个,设置的最大执行时间为5s,恰好吻合。
初步进行如下调整,将php-fpm的最大执行时间设置为10秒,如下:
- Time limit on waiting child's reaction on signals from master
- <value name="process_control_timeout">10s</value>
然后将最大子进程书设置为20,先观察一段时间。
进一步查看了mysql满查询日志,发现有一条查询多次执行超过5秒,估计是这个问题引起的,也印证了上面的判断和处理,那条查询如下:
- SELECT COUNT(f.msg_id) FROM `book`.`ecs_feedback` AS f
- LEFT JOIN `book`.`ecs_feedback` AS r
- ON r.parent_id=f.msg_id WHERE f.parent_id=0 AND ISNULL(r.msg_id)
有机会把它优化一下。
转载于:https://blog.51cto.com/webteam/1009084
更多推荐
已为社区贡献4条内容
所有评论(0)