Cómo Solucionar el Error 'Too Many Open Files' en Linux de Forma Definitiva

Cómo Solucionar el Error 'Too Many Open Files' en Linux de Forma Definitiva
Anuncio relacionado

Introducción al Error Too Many Open Files en Linux

Uno de los problemas más frustrantes a los que se enfrentan los administradores de sistemas y desarrolladores en entornos Linux es el temido mensaje Too many open files (Demasiados archivos abiertos). Este error suele aparecer en los registros del sistema o en la consola al ejecutar aplicaciones con alta concurrencia, como bases de datos, servidores web (Nginx/Apache) o scripts pesados. En este artículo te explicamos por qué ocurre y cómo solucionarlo paso a paso.

¿Cuáles son las Causas de este Error?

Linux maneja prácticamente todo como un archivo, incluyendo sockets de red, tuberías (pipes) y directorios. Por defecto, los sistemas operativos establecen límites estrictos sobre cuántos descriptores de archivos puede abrir un proceso de manera simultánea y cuántos puede abrir el usuario en total, esto con el fin de proteger los recursos del hardware. Las causas principales son:

  • Un servidor web o base de datos que recibe un volumen de tráfico muy elevado.
  • Aplicaciones mal optimizadas que abren conexiones o archivos sin cerrarlos adecuadamente (fugas de descriptores).
  • Límites por defecto (ulimit) muy bajos configurados en la distribución de Linux.

Método 1: Aumentar el límite temporalmente con ulimit

Si necesitas solucionar el problema de inmediato para una sesión actual de la terminal, puedes verificar y modificar el límite mediante el comando ulimit.

  1. Abre tu terminal de Linux.
  2. Comprueba el límite actual de archivos abiertos ejecutando el siguiente comando: ulimit -n
  3. Para incrementar este límite de forma temporal a un valor mayor, por ejemplo 65535, ejecuta: ulimit -n 65535
  4. Nota: Este cambio solo afectará a la sesión actual de la terminal y se restablecerá al reiniciar el equipo o cerrar la sesión.

Método 2: Modificar los límites del sistema para usuarios específicos (security/limits.conf)

Para aplicar un cambio permanente que afecte a un usuario o servicio específico en distribuciones basadas en Ubuntu, Debian o CentOS, debes editar el archivo de configuración de seguridad.

  1. Abre el archivo de límites con un editor de texto con privilegios de superusuario: sudo nano /etc/security/limits.conf
  2. Agrega las siguientes líneas al final del archivo para aumentar los límites (duros y blandos) para tu usuario (reemplaza tu_usuario por el nombre real):
    tu_usuario soft nofile 65535
    tu_usuario hard nofile 65535
  3. Guarda los cambios y cierra el editor (en Nano presiona Ctrl + O, Enter y luego Ctrl + X).
  4. Reinicia la sesión del usuario para aplicar los nuevos valores.

Método 3: Configurar Systemd para servicios específicos

Si el error ocurre en un servicio gestionado por Systemd (como Nginx, MySQL o un servicio personalizado de Node.js/Python), la configuración de limits.conf podría ser ignorada. Debes actualizar la configuración del servicio.

  1. Crea un directorio de anulación para el servicio afectado ejecutando: sudo systemctl edit nombre_servicio
  2. Añade las siguientes directivas dentro del bloque de configuración:
    [Service]
    LimitNOFILE=65535
  3. Guarda el archivo y recarga el demonio de Systemd para aplicar los cambios: sudo systemctl daemon-reload
  4. Reinicia el servicio para que tome el nuevo límite de archivos: sudo systemctl restart nombre_servicio
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Hardware

Cómo Solucionar el Error USB Device Over Current Status Detected al Encender el PC

Tu PC se apaga de golpe al iniciar mostrando un aviso de sobrecarga USB. Descubre por qué ocurre y cómo solucionarlo fácilmente.

Leer guía completa →
Linux

Cómo Solucionar el Error Temporary Failure in Name Resolution en Linux de Forma Definitiva

Soluciona de forma definitiva el molesto error de red que impide navegar en tu terminal Linux. Descubre los métodos más efectivos para reparar tu DNS.

Leer guía completa →
Apps

Cómo Solucionar el Error de Pantalla Negra en OBS Studio de Forma Definitiva

Aprende a resolver el problema de la pantalla negra en OBS Studio aplicando métodos sencillos de configuración gráfica. Vuelve a transmitir sin interrupciones.

Leer guía completa →