Que son los inodes en Linux

Un inode (nodo de indice) es una estructura de datos del sistema de archivos Linux que almacena los metadatos de un archivo o directorio: propietario, permisos, fecha de creacion, fecha de modificacion, tamaño y punteros a los bloques de datos en el disco. Cada archivo y directorio, independientemente de su tamaño, ocupa exactamente un inode. El sistema de archivos tiene un numero maximo de inodes que puede manejar, determinado cuando el disco fue formateado.

En hosting compartido, los proveedores generalmente imponen un limite de inodes por cuenta (tipicamente entre 100,000 y 500,000) para evitar que una cuenta con millones de archivos pequenos degrade el rendimiento del sistema de archivos para todas las cuentas del servidor. Cuando se alcanza el limite de inodes, no se pueden crear nuevos archivos aunque haya espacio en disco disponible.

Como verificar el uso de inodes

# Ver el uso de inodes por particion
df -i

# Ejemplo de salida:
# Filesystem     Inodes   IUsed  IFree  IUse%
# /dev/sda1     6553600  450000 6103600   7%

# Contar inodes de cada directorio (los 20 que mas tienen)
find /home/usuario -maxdepth 3 -type d | while read dir; do echo $(find "$dir" | wc -l) "$dir"; done | sort -rn | head -20

Causas comunes del uso excesivo de inodes

CausaTipica ubicacionInodes generados
Cache de Softaculous o instaladores/home/usuario/softaculous_backups/Miles por cada backup
Sesiones de PHP almacenadas en disco/tmp/sess_xxxxUna por sesion activa o expirada
Libreria de medios de WordPress grande/public_html/wp-content/uploads/3-5 por imagen (original + miniaturas)
Cache de plugins en disco/public_html/wp-content/cache/Cientos de miles en sitios activos
Node_modules de proyectos de desarrollo/home/usuario/proyecto/node_modules/Decenas de miles por proyecto
Logs de acceso sin rotacion/home/usuario/logs/Un archivo por dominio por dia

Liberar inodes para resolver el limite

# Eliminar cache del plugin de cache de WordPress
rm -rf /home/usuario/public_html/wp-content/cache/*

# Eliminar sesiones PHP expiradas (mas de 1 dia)
find /tmp -name "sess_*" -mtime +1 -delete

# Eliminar logs de acceso antiguos
find /home/usuario/logs/ -name "*.log" -mtime +30 -delete

# Eliminar carpetas node_modules de proyectos inactivos
rm -rf /home/usuario/proyecto/node_modules/
¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)