Comparativa independiente · sin rankings de pago
Inicio / Blog / Técnico / Inodos agotados: por qué el espacio en disco parece estar libre

Inodos agotados: por qué el espacio en disco parece estar libre

df -h muestra un 40% de libertad, pero es imposible crear un archivo: los inodos están saturados. Clásico después de millones de pequeños archivos de sesión o caché.

Redacción Hébergeurs.eu 6 min

La implementación falla: "No queda espacio en el dispositivo". df -h muestra un 35% gratis en /var. Nadie mira df -i: 100% de inodos utilizados en storage/framework/sessions: 4 millones de archivos de 100 bytes.

Los inodos son el techo invisible de archivos pequeños.

Entendiendo los inodos

Cada archivo, enlace simbólico, socket = 1 inodo (simplificado). Creación imposible si la tabla de inodos está llena incluso con GB libres.

df -i antes de cada incidente "espacial".

Diagnóstico

para d en /*; hacer echo $(buscar $d -xdev | wc -l) $d; done, lento pero revelador.

Más rápido: find /var/www -xdev -type f | corte -d/ -f1-5 | destino | único -c | ordenar -n.

Causas web clásicas

Controlador de archivos de sesiones, caché de vista compilada, trabajos en cola fallidos, extracción zip temporal, registros de varios archivos por solicitud.

ArreglarAcción
SesionesRedis/controlador de base de datos
CachéTTL + ciruela programada
Error en la colaHorizonte/trabajo de limpieza
Subir temperaturacron tmpwatch

Limpieza sin roturas

Dejar de escribir (modo de mantenimiento), purga dirigida, no ciega rm -rf en sesiones activas.

Verifique la retención/auditoría legal antes de depurar los registros.

Arquitectura

Separe /var/cache o sesiones en un volumen dedicado. Fragmentación de subdirectorios hash (aa/bb/file). Supervise el % de inodo como % de disco.

##Prevención continua

Inodo de alerta 85% como disco 85%. Cron plum cache todas las noches con archivos eliminados de métricas.

Sesiones: migre Redis antes del incidente del inodo: la actualización urgente cuesta más.

Evite millones de archivos planos: subdirectorios hash ab/cd/ef123.

Contenedores: límite de rotación de registros tamaño máximo del archivo json del controlador.

Compatibilidad con tickets de inodo de cuota compartida: solicite la cifra antes del plan de actualización, a veces gratis.

Archivo de sesiones de migración → Redis

Plan: sesiones temporales de escritura dual, configuración invertida, purgar sesiones de archivos después de 24 h TTL máximo.

Inodo de medición antes/después: corrección de prueba.

Prefijo de caché del marco: clave de caché de versión (v2_) para una purga masiva segura.

Miles de archivos de Maildir: migración a base de datos u objeto para archivos adjuntos: corrección de inodo, purga temporal, no duradera.

Caché local de artefactos de CI: limpieza de ramas obsoletas: cada rama = miles de archivos.

Herramientas de diagnóstico

ncdu interactivo para explorar millones de archivos pequeños. Sólo experto en debugfs.

Cola de correo exim/qmail: cada archivo de mensajes: purgue la cola si llega un ataque de spam.

Capacidad del plan: recuento de inodos en mkfs si se reconstruye FS: ajuste mkfs.ext4 -N.

Resumen operativo

Los inodos agotados indican un diseño inadecuado (sesiones de archivos, caché ilimitado) más que falta de espacio en GB. df -i sistemático sobre "no queda espacio". Migración de sesiones de Redis, plum cache, fragmentación de directorios hash.

Contenedores y compartidos: cuotas de panel de inodo – ticket de soporte antes de la saturación.

Plan de remediación de 48 horas

Día 1: confirme df -i, ubique el directorio superior, habilite el mantenimiento si es necesario, elimine el subconjunto seguro de caché. Día 2: migrar sesiones de Redis, implementar poda cron, agregar alerta de inodo al 85%. Semana: estrategia de refactorización de caché, subdirectorios hash, revisión de capacidad con soporte de host.

Comunicación interna: incidente de inodo ≠ disco lleno: un mensaje claro evita una mala acción financiera "comprar Go".

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Prevención de inodos

Alerta 85%. Migración de sesiones de Redis. Subdirectorios hash. Ciruela cron. No es necesario el soporte de cuota de inodo antes del plan de actualización.

Entrenamiento: inodo ≠ GB libres. Sesiones de repositorio de plantillas predeterminadas de Redis.

Contenedores y caché

Tamaño máximo del registro del archivo json. Prefijo de caché con versión v2 para una purga segura.

Mantenga un runbook fechado, métricas de antes y después, revisión posterior al incidente: la disciplina acumulativa evita el pánico del viernes por la noche.

Decide y avanza sin puntos ciegos

  1. Confirme con df -i: no confundir con disco lleno en GB; mensaje claro a las finanzas.
  2. Localice el directorio defectuoso: sesiones de caché, miniaturas, registros fragmentados, millones de archivos pequeños.
  3. Migrar sesiones a Redis: antes del incidente, si es posible; La modernización urgente cuesta más.
  4. Subdirectorios hashab/cd/ef123 en lugar de millones de archivos planos.
  5. Inodo de alerta al 85% — como disco al 85%; cron ciruela todas las noches con métrica.

Solicite la cuota de inodo al soporte compartido antes de actualizar; compare a través del directorio y el comparador.

Preguntas frecuentes

¿Diferencia de espacio en disco e inodos?

El disco puede mostrar GB libres mientras que el sistema de archivos no tiene más inodos para crear un archivo, algo común en millones de pequeños archivos o sesiones de caché.

¿Qué hacer urgentemente?

Confirme df -i, identifique el directorio superior, purgue el caché seguro o migre sesiones a Redis. No compre GB adicionales: el problema no es la capacidad del bloque.


Si su caché escribe un archivo por solicitud, el límite de inodo viene antes que el límite del disco: cuente.

Compara proveedores europeos

Filtra por cumplimiento, ubicación y caso de uso — luego abre las fichas para verificar el alcance real.

Explorar el directorio
Blog

Lecturas relacionadas

Todos los artículos →