359 votes

Utilisation gratuite de Inode HOWTO

J’ai un lecteur de disque où l’utilisation de l’inode est 100 % (à l’aide de `` commande). Cependant après avoir supprimé les fichiers sensiblement, l’utilisation reste 100 %.

Quelle est la façon correcte de le faire alors ?

Comment est-il possible qu’un lecteur de disque avec moins espace disque peut avoir une utilisation supérieure de Inode à disque dur avec l’utilisation de l’espace disque supérieure ?

251voto

simon Points 736

Si vous êtes très malchanceux, vous avez utilisé environ 100 % de tous les i-nœuds et impossible de créer le scipt. Vous pouvez vérifier cela avec « df - ih »

alors cette commande bash peut vous aider :

Et oui, cela prendra du temps, mais vous pouvez localiser le répertoire avec les plupart des fichiers

195voto

paxdiablo Points 341644

Il est très facile pour un disque à avoir un grand nombre d'inodes utilisés même si le disque n'est pas très complet.

Un inode est attribué à un fichier de sorte, si vous avez des gazillions de fichiers, tous les 1 octet chacun, vous serez à court d'inodes longtemps avant de vous lancer de disque.

Il est également possible que la suppression de fichiers ne permettra pas de réduire l'inode compter que si les fichiers ont plusieurs liens en dur. Comme je l'ai dit, elles appartiennent à la file, pas de l'entrée de répertoire. Si un fichier comporte deux entrées de répertoire lié à elle, la suppression de l'un ne sera pas libre de l'inode.

En outre, vous pouvez supprimer une entrée de répertoire mais, si un processus en cours d'exécution a encore le fichier ouvert, l'inode ne sera pas libéré.

Mon premier conseil serait de supprimer tous les fichiers que vous pouvez, puis de redémarrer la box pour s'assurer qu'aucun processus n'gauche tenant les fichiers ouverts.

Si vous le faites et que vous avez encore un problème, laissez-nous savoir.

Par ailleurs, si vous êtes à la recherche pour les répertoires qui contiennent beaucoup de fichiers, ce script peut vous aider:

#!/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 Points 21

eAccelerator pourrait être la cause du problème puisqu’il compile PHP en blocs... J’ai eu ce problème avec un serveur Amazon AWS sur un site avec des charges lourdes. Libérez les Inodes en supprimant le cache eaccelerator dans /var/cache/eaccelerator si vous continuez à avoir des problèmes.

(ou quel que soit votre cache dir)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X