Hey,
I have Rest API server powered by Nginx and PHP-FPM. Each API call
produces
several CURL requests.
The script that executes the API calls, also utilizes CURL. I use curl
multi
exec, with 1,000 threads. All the setup creates a little bit less than
10K
sockets.
Anyway, here is the problem…
The script that executes the API calls, let’s say 3,000 on 1K threads.
It
takes around 170 secs to finish processing all those API calls. However,
when the main script tries to return a response to the browser and
initiate
a FIN_WAIT it takes 8 minutes until everything is returned to the
browser.
Here is how it looks:
http://d.pr/i/1WkI
My theory is that it happens because Nginx puts the worker somehow on
hold
or something like that. This was the first worker in the chain of
workers.
There is no data being transferred since the worker initiated the
request to
PHP-FPM.
Any ideas what should I do?
Thanks.
Posted at Nginx Forum: