Огромный каталог /var/log inode в ext3 после создания и удаления многих файлов
У меня есть Debian Jessie, /var/log в корневом разделе типа ext3 (rw,relaytime,data=order). Четыре дня назад logrotate сбросил десятки тысяч файлов, это было исправлено и файлы удалены. После этого:
# du -hc /var/log/
511M total
Файлы и подкаталоги всего 255M:
#du -hc --exclude=.. --exclude=. /var/log/* /var/log/.*
255M total
Остальное это сам каталог:
# ls -ldh /var/log
drwxr-xr-x 15 root root 257M Feb 18 06:55 /var/log
# stat /var/log
File: ‘/var/log’
Size: 268496896 Blocks: 524936 IO Block: 4096 directory
Некоторые операции (выглядят случайными для меня) над / var / log занимают очень много времени (до 5 минут). Я не могу ни размонтировать, ни перемонтировать его только для чтения по нетехническим причинам.
Почему такой большой каталог может возникнуть и почему он вызывает огромные лаги? Как я могу "спустить" его без размонтирования? Какие могут быть предостережения от остановки rsyslog, создания нового каталога, перемещения в него содержимого / var / log и переименования в / var / log, аналогично предложенному в /questions/24363/ogromnyij-katalog-ne-fajlyi-vnutri-a-sam-katalog/24377#24377?
2 ответа
При использовании ext3 размер каталога никогда не уменьшается. Если в какой-то момент его размер был большим, он останется высоким даже после очистки. В отличие, например, от xfs, размер очищаемого каталога регулируется (в реальном времени).
Как вы сказали, в этом каталоге было несколько десятков тысяч файлов. Список записей в каталоге велик, и его чтение стоит дорого и медленно. Если вам случится взглянуть на файл, к которому недавно обращались, и который все еще находится в кеше, это будет намного быстрее.
Перемещение каталога и создание нового - это эффективный способ его смягчения. Вы можете удалить большой медленный по своему усмотрению, даже если это займет некоторое время.
fsck также может оптимизировать каталог, но это требует его размонтирования.
Для системного журнала удаленное ведение журнала может быть альтернативой локальным файлам, если это помогает при кратковременном сбое ведения журнала.