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:
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?
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 going to 504.
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.
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.