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