BSDPORTAL.RU
http://bsdportal.ru/

слишком много файлов в одной директории ZFS
http://bsdportal.ru/viewtopic.php?f=98&t=28894
Страница 1 из 1

Автор:  Serzh [ Вт 08 янв, 2019 12:28 pm ]
Заголовок сообщения:  слишком много файлов в одной директории ZFS

5 лет назад на одном из старых компов поставил FreeBSD, которая выполняет по сей день всего одну функцию - Secondary DNS
на днях обнаружил, что всё место на диске закончилось.

несмотря на sendmail_enable="NONE" в rc.conf, почтовик нагенерил несчётное количество файлов в /var/spool/clientmqueue
я даже посмотреть их там не могу - mc тупо виснет при попытке зайти в этот каталог, ждал несколько дней, загрузка диска в полку. Локального доступа к этому компу нет, стоит за несколько тысяч километров.
С большим трудом увидел несколько названий файлов, понял чтомногие заканчиваются на "24820", пробую удалить:

Код:
root@dns:/var/spool/clientmqueue # rm *24820
/bin/rm: Argument list too long.
root@dns:/var/spool/clientmqueue # ls -la *24820
/sbin/ls: Argument list too long.


при этам каждая операция выполняется около часа.
Помогает только:

Код:
root@dns:/var/spool/clientmqueue # rm *a024820
root@dns:/var/spool/clientmqueue # rm *b024820
root@dns:/var/spool/clientmqueue # rm *c024820


каждая операция выполняется 15-20 минут, но это будет далеко не всё, каждый проход особождает несколько десятков мегабайт, при общем забитом объёме более 60Гиг.

Как ещё можно удалить все файлы в этой директории? как ограничить максимальное количество файлов в ней? квоту поставлю, но сначала надо вывести из ступора это дело, бьюсь уже пятый день.

Автор:  ankor [ Вт 08 янв, 2019 1:19 pm ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

Попробуй.
Код:
#find /var/spool/clientmqueue/ -type f -delete

Автор:  grayich [ Вт 08 янв, 2019 1:49 pm ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

возможно будет ооочень долго удалять (интересно сколько файлов там?)

имхо - проще удалить весь каталог через rm -rf или -rfd и создать его заново

Автор:  Serzh [ Вт 08 янв, 2019 4:55 pm ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

мне тоже очень интересно сколько их там.
через find пробовал, но такое ощущение, что он сначала всё ищет, а потом только начинает работать с результатом, если что-то в процессе обрывается, то результат нулевой.

Автор:  Serzh [ Вт 08 янв, 2019 6:21 pm ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

запустил полтора часа назад
Код:
find /var/spool/clientmqueue/ -type f > /bootpool/clientmqueue

до сих пор пустой файл, посмотрим что к утру будет.

Автор:  grayich [ Вт 08 янв, 2019 7:45 pm ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

Serzh, мож ls c -f прокатит
ls -f|wc - например или ls -f > spisok.txt
ещё можно попробовать древний хак echo * > spisok.txt вдруг сработает

кстати, сколько кажет ls -ldh ?

ещё подумалось, что find явно старый, можно попробовать новый запустить там, он точно построчно выводит найденное и обрабатывает
или попробовать вариант find ./ -type f -print0|xargs -0 rm
хотя может оно работает, нужно просто убедиться

кстати rm -rf перед тем как удалить каталог удаляет файлы по одному, и похоже это самый быстрый способ

Автор:  Serzh [ Ср 09 янв, 2019 1:16 am ]
Заголовок сообщения:  Re: слишком много файлов в одной директории ZFS

спустя 7 часов команда
Код:
find /var/spool/clientmqueue/ -type f > /bootpool/clientmqueue

отработала и в файле размером ~80Мб появилось около 2 миллионов записей, причём до самого последнего момента файл был пустой.
добавил в начало каждой строки "rm " и запустил на выполнение - удаляет сейчас 50-60 файлов в секунду, место освобождается прямо на глазах.

сейчас:
Код:
root@dns:/var/spool/clientmqueue # ls -ldh
drwxrwx---  2 smmsp  smmsp   1.6M Jan  9 02:18 .


походу ему тупо не хватало памяти обработать эту директорию, так как как только пытался что-то сделать с этим каталогом, как сразу же вся свободная память уходила под ARC, даже в своп оно залазило.

Всем спасибо!

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/