nginx一次*3 recv() failed (104 connection reset by peer) 故障排查

3,154 阅读1分钟

#1 查看错误日志

#nginx-error-log
tail /var/log/nginx/error.log -n 200 
#*289 recv() failed (104: Connection reset by peer) while reading response header from upstream..

#php-fpm日志
tail /var/log/php7.2-fpm.log -n 200
# [pool www] server reached pm.max_children setting (50), consider raising it

#2 修改PHP-FPM进程数的设定

## 先查看每一個php-fpm使用的記憶體數量
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | grep php-fpm

## 修改
 vim /etc/php/7.2/fpm/pool.d/www.conf
  • pm.max_children:静态方式下开启的php-fpm进程数量
  • pm.start_servers:动态方式下的起始php-fpm进程数量
  • pm.min_spare_servers:动态方式下的最小php-fpm进程数
  • pm.max_spare_servers:动态方式下的最大php-fpm进程数量
pm.max_children = 100

pm.start_servers = 30

pm.min_spare_servers = 20

pm.max_spare_servers = 100

pm.max_requests = 500
sudo service php7.2-fpm restart