华为开发者空间 php-fpm (pool default) executing too slow

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条:

 
  
  1. fpm_request_check_timed_out(), line 146: child 17959, script 
  2. '/www/www.XXX.com//user.php' (pool default) executing too slow (5.101559 sec), 
  3. logging Sep 28 11:33:47.052981 [NOTICE] fpm_got_signal(), line 48: 
  4. received SIGCHLD 

判断是mysql查询时间超过5秒导致,看了下php-fpm.conf的设置,我给php-fpm开的子进程为8个,设置的最大执行时间为5s,恰好吻合。

初步进行如下调整,将php-fpm的最大执行时间设置为10秒,如下:

 
  
  1. Time limit on waiting child's reaction on signals from master 
  2.  <value name="process_control_timeout">10s</value> 

然后将最大子进程书设置为20,先观察一段时间。

进一步查看了mysql满查询日志,发现有一条查询多次执行超过5秒,估计是这个问题引起的,也印证了上面的判断和处理,那条查询如下:

 
  
  1. SELECT COUNT(f.msg_id) FROM `book`.`ecs_feedback` AS f 
  2. LEFT JOIN `book`.`ecs_feedback` AS r 
  3. ON r.parent_id=f.msg_id WHERE f.parent_id=0 AND ISNULL(r.msg_id) 

有机会把它优化一下。
 

转载于:https://blog.51cto.com/webteam/1009084

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐

  • 浏览量 1996
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献4条内容