Назад | Перейти на главную страницу

ext4 очень медленный список файлов в одном конкретном каталоге, который раньше содержал много файлов

Задний план

У меня была небольшая ошибка logrotate ... Logrotate вращал архивные журналы из-за ошибки, вызывая квадратичный рост файлов в моем /var/log/. И когда я поймал ветер, что-то пошло не так, /var/log/ уже содержится несколько миллионов файлов...

Мне удалось (после некоторого выпадения волос и поиска / sed / grep magic) удалить все оскорбительные файлы и исправить мою конфигурацию logrotate. И думал, что все хорошо ...

Проблема

Всякий раз, когда я ls/du -hs или иным образом перечислите содержимое /var/log/ (который теперь содержит 80 МБ архивов / журналов и не более нескольких сотен файлов), выполняющий этот процесс зависает на пару минут. Я действительно считаю, что это как-то связано с ошибкой logrotate, но я не уверен, это может быть что-то еще. В любом случае я не понимаю, с чего начать отладку или ищу исправление для этого. Пожалуйста, помогите: 3

Другая информация

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 

Я думал так: Сколько файлов в каталоге - это слишком много? (Загрузка данных из сети) был связан, но у меня больше не осталось файлов.

редактировать

Проблема сохраняется даже после звонка в init 1 поэтому я думаю, что можно с уверенностью предположить, что виноват только ФС.

Решение (в соответствии с принятым ответом)

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

Каталоги только увеличиваются в размерах, а не сокращаются. Попробуйте переместить все эти файлы во временный каталог (например, log2), затем rmdir в старый каталог и переименуйте временный каталог в новый постоянный.