263 votos

Howto Libre Uso De Inodes

Tengo una unidad de disco donde el inodo uso es 100% (con df -ide comandos). Sin embargo, después de la eliminación de archivos de forma sustancial, el uso de permanecer 100%.

¿Cuál es la forma correcta de hacerlo?

¿Cómo es posible que una unidad de disco con menos uso de espacio de disco puede tener más de Inodo de uso de la unidad de disco con un mayor uso de espacio en disco?

201voto

simon Puntos 736

Si usted es de muy mala suerte que han utilizado aproximadamente el 100% de todos los inodos y no se puede crear el scipt. Usted puede comprobar esto con "df-ih"

luego de este comando bash puede ayudarle a:

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

Y sí, esto va a tomar tiempo, pero usted puede localizar el directorio con la mayoría de los archivos

166voto

paxdiablo Puntos 341644

Es muy fácil para un disco que tiene un gran número de inodos de usar, incluso si el disco no es muy completo.

Un inodo es asignado a un archivo por lo tanto, si usted tiene tropecientos millones de archivos, todos de 1 byte cada uno, te quedarás fuera de inodos mucho antes de ejecutar fuera de la disco.

También es posible que la eliminación de archivos no reducirá el inodo contar si los archivos tienen múltiples enlaces duros. Como ya he dicho, los inodes pertenecen al archivo, no de la entrada de directorio. Si un archivo tiene dos entradas de directorio, vinculado a él, la eliminación de uno no es libre en el inodo.

Además, puede eliminar una entrada de directorio, pero, si la ejecución de un proceso todavía tiene abierto el archivo, el inodo no será liberado.

Mi consejo inicial sería la de eliminar todos los archivos que usted puede, a continuación, reinicie el cuadro para asegurar que no son procesos que se quede con los archivos abiertos.

Si lo hace y usted todavía tiene un problema, háganoslo saber.

Por cierto, si usted está buscando para los directorios que contienen una gran cantidad de archivos, este script puede ayudar:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

1voto

supershwa Puntos 21

eaccelerator podría estar causando el problema, ya que compila PHP en bloques...he tenido este problema con Amazon AWS servidor en un sitio con mucha carga. Gratis hasta los Inodos mediante la eliminación de la eaccelerator caché en /var/cache/eaccelerator si los problemas continúan.

rm -rf /var/cache/eaccelerator/*

(o cualquiera que sea tu cache dir)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X