LINUX.ORG.RU
ФорумAdmin

Как удалить 100 000 файлов

 ,


0

4

Проблема в том, что когда я начинаю удалять 100 000 файлов, то система виснет почти наглухо. atop показывает загрузку диска 120% и сайт ложится. Диск 2x2TB sata рейд soft. Удалять по 1 файлу очень долго. Как можно быстро удалить их? Система Debian GNU/Linux 9.4 (stretch).
Спс )

★★★★

Ответ на: комментарий от gobot

Твоя проблема вот в чем: место занимаемое каталогом на диске умеет только расти. Если в твоем каталоге однажды побывало 10 миллионов файлов одновременно, то размер каталога остается рассчитанным на 10 миллионов записей, даже если ты удалишь все файлы из каталога.

Тебе нужно хранить временные файлы в разных каталогах. Или создавать каждые сутки или каждый час новый каталог. Такая иерархия обрабатывается быстрее, чем один каталог с кучей файлов в нем.

anto215 ★★
()
Ответ на: комментарий от anto215

Нет, у меня файлов в дире нет много, структура такая /files/92/58/Gm9L4srGptYqeYdp4kqMpj.jpeg, ну я думаю в каждой дире максимум по 100 файлов. Заметил ещё если удалять как раз из одной диры, где 50 000 файлов, то удаляется на порядок быстрее. Ну ещё и jbd2 каждые 5 сек. грузит диск ~ 60%

gobot ★★★★
() автор топика
Ответ на: комментарий от anto215

создаёшь пустую директорию и запускаешь рсинк с параметром --delete пустой на конечную с кучей файлов.

PunkoIvan ★★★★
()

Братья! Я кажется понял в чем затык! Сегодня экспериментировал. поначалу думал что тормозит БД, да она влияла, но примерно на 30%, все же влияет доступ к файлам. Я удалял с одной папки через пхп, где лежало 60 000 файлов, все было шикарно, 10 000 файлов удалилось за ~10 секунд.
Но когда начинаешь удалять файлы в разных папках
Структура примерно такая:

/files/ff/56/345235234523.jpg

Все дико затыкается примерно через 1000 файлов удаленных начинается конкретный тормоз и вещает сервер примерно на 10-16 сек. Ещё я заметил, что когда архивирую через tar(без сжатия), то тоже норм, хотя копируется примерно 5 гигов этих же файлов. Когда через MC копируешь, то ВИСНЕТ также, как и через пхп.

Тут KRoN73 говорил, что использует
ionice -c3

Может с помощью этой тузлы снизить приоритет IO или что?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Наврал, 5 гигов, это без учета этих файлов, с ними около 80 гигов... Я их просто не могу скопировать, MC тупо виснет, а tar норм

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Ответ на: комментарий от anto215

Это во всех файловых системах так?

Deleted
()
Ответ на: комментарий от anto215

Ну почему временные то? Они не временные, а удаляю я старые файлы, например месячные. И у меня не один каталог и в нем нет даже и 100 файлов

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Заметил ещё если удалять как раз из одной диры

Ну и почему вам не отсортировать то тогда перед удалением? У вас всё было (явно не вами) сделано правильно — каталоги с именами в виде хешей для предотвращения огромного количества в одном, ну и так и удаляйте последовательно по каталогам.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.