Marco Bonezzi
Marco Bonezzi

Reputation: 101

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?

Upvotes: 10

Views: 5612

Answers (2)

Mat
Mat

Reputation: 2438

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.

Upvotes: 2

Mariusz Mach
Mariusz Mach

Reputation: 11

Try to modify your config as follows :

pm = ondemand
pm.max_children = 200
pm.process_idle_timeout = 1s
pm.max_requests = 1000

restart fpm and your problem should be solved.

Upvotes: 1

Related Questions