jueves, 31 de mayo de 2012

Error "Too many open files" en nGinx

Cuando en los logs del nGinx tenemos el error

Too many open files

significa que hay demasiadas peticiones y que el nGinx no las puede gestionar.

Para solucionarlo de manera puntual (una vez pasada la punta es recomendable volver al estado normal, o al menos ajustarlo a las características del servidor, en caso de que sea necesario dejarlo porque haya aumentado la carga del servidor), añadimos:

ulimit -n 65535

en la siguiente línea después del '#! /bin/sh' en el

/etc/init.d/nginx

Después, editamos el

/etc/nginx/nginx.conf

y modificamos la línea

worker_connections  1024;

y modificamos el valor a

20480

y añadimos la entrada

worker_rlimit_nofile 20480;

justo debajo del parámetro 'worker_processes'

Reiniciamos el nGinx y durante un rato es recomendable monitorizar el servidor y controlar los parámetros básico de sistema para comprobar que estas modificaciones no tiran el servidor. En caso de que el servidor se hunda, habrá que ir bajando el número de conexiones en el

/etc/nginx/nginx.conf

Ambos parámetros modicados (worker_rlimit_nofile y worker_connections) deben ser iguales.