Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nginx + php-fpm random hang

I have a website made with Codeigniter, running on Ubuntu with Nginx and PHP-FPM. It worked fine till last night, when it started loading pages really slow, sometimes giving 504, other times loading pages fast.

If I restart nginx or php-fpm, the site works fine for 20-30 seconds, then the problem occur again.

Here's what nginx error log says:

[error] 25226#25226: *65 upstream timed out (110: Connection timed out) while reading response header from upstream, client: X.X.X.X, server: www.mydomain.ext, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php5.6-fpm.sock:", host: "www.mydomain.ext"

I've been googling and playing around with nginx and php-fpm config for the last few hours, but I couldn't solve it.

Does anyone know how to help me?

like image 384
Marco Bonezzi Avatar asked Apr 21 '17 09:04

Marco Bonezzi


1 Answers

To me it looks like a problem with the FPM process management. See this link for more information. It's seems like you have static number of processes available for php-fpm and traffic is exceeding it. I was facing similar issues, but I don't remember if this was the exact error message back then. But the behavior was like you explained, some connections were really slow (Waiting for fpm?) other were returning 504.

UPDATE: To confirm my theory you should check the file /etc/php5.6/pool.d/www.conf and check this line:

pm.max_children = X

Increase the number and restart fpm. Then see if problem is solved.

like image 158
Mat Avatar answered Oct 28 '22 11:10

Mat