1

Удаление, как мне кажется, умеренного количества файлов занимает очень много времени. Например:

$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:00:16 [4.55MB/s]
$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:03:16 [ 382kB/s]

Раздел отформатирован как ext4, смонтированный relaytime, error = remount-ro. При удалении файлов скачок загрузки процессора отсутствует. Кто-нибудь знает, что может происходить?

Обновление: Выполнение указанных выше команд или команды rm -rf от имени root выполняется должным образом ... обновление: разобрался. Сисадмин для коробки установил на коробке смешное количество правил аудита. Удаление их исправляет это.

1 ответ1

1

Когда вы заменяете или удаляете файл, он упрощенно делает это:

  1. Найдите индекс для файла.
  2. Проверьте разрешения, пользователя и группы отдельных файлов.
  3. Также удалите файлы в каталоге, если файл был каталогом (повторите 1 - 4 для каждого файла).
  4. Отключите файл и его индекс.

Очевидно, что это сильно снизит производительность, потому что это гораздо сложнее, чем просто добавить новый инод и записать файл на диск. Это побочный эффект того, что это список таблиц инодов, если бы он был деревом инодов, вместо этого он мог бы просто удалить целую ветвь. Хотя это ничего не изменит, поскольку вы не помните, так как он будет делать это файл за файлом независимо от того, как хранятся inode ...

Запуск от имени root обрезает шаг 2, что может иметь или не иметь огромную разницу.


Вы пробовали монтировать обратно в ext3 и сравнивать время выполнения?

Потому что ext4 удаляет быстрее из-за использования экстентов. Было бы замечательно, если бы это было медленнее ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .