Nginx & Passenger - failed (11: Resource temporarily unavailable) while connecting to upstream
I have an Nginx and Passenger setup that is proving problematic.
At relatively low loads the server seems to get backed up and start churning results like this into the error.log:
connect() to unix:/passenger_helper_server failed
(11: Resource temporarily unavailable) while connecting to upstream
My passenger setup is:
passenger_min_instances 2;
passenger_pool_idle_time 1200;
passenger_max_pool_size 20;
I have done some digging, and it looks like the CPU gets pegged. Memory usage seems fine passenger_memory_stats shows at most about 700MB being used, but CPU approaches 100%.
is this enough to cause this type of error?
Should i bring the pool size down? Are there other configuration settings I should be looking at?
Any help appreciated
Other pertinent information:
- Amazon EC2 Small Instance
- Ubuntu 10.10
- Nginx (latest stable)
- Passenger (latest stable)
- Rails 3.0.4
Solution 1:
With the CPU approaching 100% and looking at the specs of the EC2 small instance, it sounds to me like your machine is swapping. Have a look at the output of free -m
while you boot up the server and then watch it when you do some load testing.
From the docs of Phusion Passenger
A larger number results in higher memory usage, but improves the ability to handle concurrent HTTP requests.
Do you really need to handle a lot of concurrent requests? If so, you should probably invest in a larger EC2 instance and then turn up your passenger_max_pool_size
. It doubt that you will need more than the default of 6 that passenger provides with that little machine.