Ajustar el Max open files de un demonio específico con systemd
servidor
Published: 2016-04-02

Este contenido ha sido trasladado desde Qiita.

A veces es necesario ajustar el Max open files en nginx, entre otros.

Antes de CentOS7, no había systemd, por lo que modificábamos limits.conf, pero con systemd parece que se puede manejar de manera más simple.

Tomemos como ejemplo una situación problemática con nginx.

Verificación del estado actual

# grep "^Max open files" /proc/`cat /var/run/nginx.pid `/limits
Max open files            1024                 4096                 archivos 

Con la configuración actual, no se puede abrir más de 1024 archivos en un proceso y, cuando nginx está operando con una gran cantidad de archivos debido a la sintonización de worker_connections y cachés, a menudo no es suficiente.

Modificación de la configuración

# mkdir /etc/systemd/system/nginx.service.d
# vi /etc/systemd/system/nginx.service.d/limits.conf

[Service]
LimitNOFILE=65536

Reflejar la configuración

  • Hacer que systemd cargue las modificaciones
# systemctl daemon-reload
  • Reiniciar nginx para volver a iniciar el proceso
# systemctl restart nginx                                                                                                   

Verificación después del cambio

# grep "^Max open files" /proc/`cat /var/run/nginx.pid `/limits
Max open files            65536                65536                archivo

Hemos conseguido ajustar correctamente el Max open files.

Fuera de systemd

Dado que solo se aplica el ajuste de open files a través de systemd, si se ejecuta directamente, como con nginx -t, el Max open files no se ajustará, así que téngalo en cuenta.

# nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: [warn] 4096 worker_connections exceden el límite de recursos de archivos abiertos: 1024
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa