Corregir “Too many open files in system”

Si alguna vez te has encontrado con el error “Too many open files in system” en tu servidor Linux, aquí expongo la forma de incrementar el número de ficheros abiertos que permite el sistema:

1) Abre el fichero /etc/sysctl.conf

2) Busca la línea:

fs.file-max=4096

( el número 4096 puede variar o puede que en tu sistema no esté esta línea).

3) Cámbiala por:

fs.file-max=32768

(32768 es un número de ejemplo, puedes usar uno distinto).

Para conocer el valor actual que tiene el sistema que está funcionado, puedes hacer:

cat /proc/sys/fs/file-max

y como root también puedes cambiarlo en tiempo real con:

echo 32768 > /proc/sys/fs/file-max

Espero que os sirva de ayuda. A mí seguro que me sirve de apunte para la próxima vez ;)

 

PD: Si el comando:

ulimit -n

os da 1024, quizá queráis también ampliarlo con:

ulimit -n 65536

Optimizando servidores

En estos días más tranquilos de Agosto, ando optimizando los servidores que manejo actualmente para poder sacarles más partido y optimizar también las cuentas de gastos. Y lo que voy descubriendo me va gustando.

Estas son las gráficas obtenidas con loadimpact.com para la misma web con dos configuraciones distintas.

La primera usa Apache 2.2.3 con mod_php5 (5.2.13) y memcached

La segunda Nginx 0.7.67 con php-fpm (5.3.3) y memcached

Bastante interesante el aumento de rendimiento. En mi opinión mucho de este aumento tiene que ver con la posibilidad que ofrece el Nginx de comprobar él mismo si el contenido se encuentra en memcached. De esta forma, se ahorra el tener que hacer la llamada (y posible carga) al fast-cgi de php. Reduciendo de esta forma drásticamente el consumo de memoria y las llamadas a disco del servidor.

Veo que en algunos casos, la optimización por medio de nuevo software más ligero o específico puede cambiar la decisión entre seguir en el mismo servidor o tener que contratar uno más grande (y costoso). Otra forma sencilla de “aumentar ingresos”, vía ahorro de costes,  en estos tiempos difíciles.