ext4 lista plików bardzo wolno w jednym określonym katalogu, który wcześniej zawierał wiele plików

17

tło

Miałem małe zniekształcenie Logrotate ... Logrotate obracałby zarchiwizowane logi przez błędne wykonanie, powodując kwadratowy wzrost plików w moim pliku /var/log/. A kiedy dowiedziałem się, że coś jest nie tak, /var/log/zawierało już kilka milionów plików ...

Udało mi się (po pewnym utracie włosów i znalezieniu / sed / grep magic) usunąć wszystkie obrażające pliki i naprawić konfigurację logrotate. I myślałem, że wszystko było dobrze ...

Problem

Ilekroć ja ls/ du -hslub w inny sposób wymieniam zawartość /var/log/(która teraz zawiera 80 MB archiwów / dzienników i co najwyżej kilkaset plików), proces ten zawiesza się na dobrą minutę lub dwie. Wierzę, że jest to w jakiś sposób związane z zniekształceniem logrotatu, ale nie jestem pewien, może to być coś innego. W każdym razie nie wiem, gdzie zacząć debugowanie lub szukam rozwiązania tego problemu. Proszę o pomoc: 3

Inne informacje

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 

Pomyślałem tak: ile plików w katalogu jest za dużo? (Pobieranie danych z sieci) było powiązane, ale nie mam już plików.

Edytować

Problem utrzymuje się nawet po wezwaniu do, init 1 więc myślę, że można bezpiecznie założyć, że nie ma innego procesu do obwinienia niż FS.

Rozwiązanie (zgodnie z przyjętą odpowiedzią)

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.
źródło

Odpowiedzi:

26

Katalogi zawsze powiększają się, a nie kurczą. Spróbuj przenieść wszystkie te pliki do katalogu tymczasowego (np. Log2), a następnie rmdir stary katalog i zmień nazwę tymczasowego na nowy na stały.

Matthew Ife
źródło
Zrobiłem to tak, jak odpowiedziałeś. Udało się :) Niestety nie mam wystarczającej reputacji, aby cię głosować: /
Emily L.,