cache manager process exited with fatal code 2 and cannot be respawned

Igor Sysoev igor at sysoev.ru
Thu Nov 8 14:09:20 UTC 2012


On Nov 7, 2012, at 13:49 , Isaac Hailperin wrote:

> Hi,
> 
> after restarting nginx I find
> 
> 2012/11/07 10:24:02 [alert] 23635#0: 512 worker_connections are not enough
> 2012/11/07 10:24:02 [alert] 23636#0: 512 worker_connections are not enough
> 2012/11/07 10:24:04 [alert] 23618#0: cache manager process 23635 exited with fatal code 2 and cannot be respawned
> 
> in my logs. It seems like this error came up after adding more then 2500 virtual hosts, each consisting of two server blocks, one for http, and one for https.
> 
> Now I don't quite understand these messages. In my nginx.conf I have
> user www-data;
> worker_processes 16;
> pid /var/run/nginx.pid;
> worker_rlimit_nofile 65000;
> 
> events {
>        worker_connections 2000;
>        use epoll;
>        # multi_accept on;
> }
> 
> so that should be enough worker_connections. Why am I still getting this message?
> 
> For the other message regarding the cache manger, I found this
> http://www.ruby-forum.com/topic/519162
> thread, where Maxim Dounin suggests that it results from the kernel not supporting eventfd(). But as far as I understand this is only an issue with kernels bevore 2.6.18. I use 2.6.32 and my kernel config clearly states
> CONFIG_EVENTFD=y

These message have no relation to eventfd().

A process with pid of 23636 is probably cache loader. Both cache manager and loader
do not use configured worker_connection number since they do not process connections
at all.  However, they need one connection slot to communicate with master process.

512 connections may be taken by listen directives if they use different addreses,
or by resolvers if you defined a resolver in every virtual host.
A quick workaround is to define just a single resovler at http level.


--
Igor Sysoev
http://nginx.com/support.html



More information about the nginx mailing list