ext4 liste des fichiers très lents dans un répertoire spécifique qui contenait beaucoup de fichiers avant

16

Contexte

J'ai eu une petite erreur de forme logrotate ... Logrotate faisait tourner les journaux archivés par erreur provoquant une croissance quadratique des fichiers dans mon fichier /var/log/. Et au moment où j'ai pris le vent que quelque chose clochait, /var/log/contenait déjà quelques millions de fichiers ...

J'ai réussi à (après quelques pertes de cheveux et trouver / sed / grep magic) supprimer tous les fichiers incriminés et corriger ma configuration logrotate. Et je pensais que tout allait bien ...

Problème

Chaque fois que j'énumère ls/ du -hsou répertorie le contenu de /var/log/(qui contient maintenant 80 Mo d'archives / journaux et au plus quelques centaines de fichiers), le processus faisant cela se bloque pendant une bonne minute ou deux. Je crois que cela est en quelque sorte lié à la déformation logrotate mais je ne suis pas certain, cela pourrait être autre chose. Quoi qu'il en soit, je ne sais pas où commencer le débogage ou à la recherche d'un correctif pour cela. S'il vous plaît aider: 3

Autre info

uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R) 
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux

cat /proc/meminfo 
MemTotal:        2051552 kB
MemFree:           75612 kB
Buffers:            9016 kB
Cached:          1740608 kB
SwapCached:            0 kB

CFQ IO scheduler + SLUB allocator 

Je pensais ceci: combien de fichiers dans un répertoire est trop? (Téléchargement de données à partir du net) était lié, mais je n'ai plus les fichiers.

Éditer

Le problème persiste même après un appel à, init 1 donc je pense qu'il est sûr de supposer qu'il n'y a pas d'autre processus à blâmer que le FS.

Solution (telle qu'appliquée à partir de la réponse acceptée)

init 1
mv /var/log /var/log1
mkdir /var/log
chmod --reference=/var/log1 /var/log
chown --reference=/var/log1 /var/log
tar -C /var/log1 -cvp . | tar -C /var/log -xvp
rm -rf /var/log1
init 5
Emily L.
la source

Réponses:

25

Les répertoires ne font que croître en taille, pas rétrécir. Essayez de déplacer tous ces fichiers dans un répertoire temporaire (comme log2), puis rmdir l'ancien répertoire et renommer le temp comme le nouveau permanent.

Matthew Ife
la source
Je viens de le faire comme vous l'avez répondu. Cela a fonctionné :) Malheureusement, je n'ai pas assez de réputation pour vous voter: /
Emily L.