У меня есть Debian Jessie, / var / log в корневом разделе типа ext3 (rw, relatime, 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, аналогично предложенному в https://serverfault.com/a/487245 ?
Как вы сказали, в этом каталоге были десятки тысяч файлов. Список записей каталога большой и читать все это дорого и медленно. Если вы случайно посмотрите на недавно открывшийся файл, который все еще находится в кеше, это будет намного быстрее.
Перемещение каталога и создание нового - эффективный способ смягчить его. Вы можете удалить большую медленную по своему усмотрению, даже если это займет некоторое время.
fsck также может оптимизировать каталог, но для этого необходимо его размонтировать.
Для системного журнала удаленное ведение журнала может быть альтернативой локальным файлам, если это поможет с кратковременным отключением журнала.