LINUX.ORG.RU
ФорумAdmin

e4defrag и последствия

 ,


0

5

День добрый, господа и дамы. Смогут ли местные гуру подсказать ответы на вопросы «как так?» и «почему?» ? Имеется обычный комп с Manjaro. Имеется хранилище на 32Тб формата RAID0 (физический). Имеется EiskaltDC++. Первичное хэширование данных с хранилища в EiskaltDC++ показывало скорость считывая, доходящую до 350МБ/С. После применения утилиты e4defrag - скорость считывания упала так, что не поднимается выше 80МБ/С. Состав файлов в хранилище не менялся. После «дефрагментации» при запуске системы регулярно стал появляться процесс «ext4lazyinit», который достаточно долго висит и что-то там делает. До этого на данной машине стояла Ubuntu Server. Картина полностью была аналогичная (с той лишь разницей, что на ней крутился AirDC++ WEB).

Диски проверял, со смартом все отлично, бэд-блоков нет. Ну словно только с завода выпустились. И постоянно после e4defrag замедляются. Ну никак не могу понять в чем дело и почему и как это исправить.

Очень прошу, подскажите куда копать, что смотреть, изменить и тд. Заранее благодарен каждому, кто направит в нужное «русло»



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

У него файловый сервер с которого скачивают. Скачивают обычно весь файл целиком.

А я об этом же, bigfile может быть размазан на тысячи частей по фс, в то время как тысяча мелких файлов лежать последовательно.

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

Проблема в том, что в хранилище находится книжная библиотека и медиатека. Если второе - все понятно файлы большие, то с первым не все так просто. Библиотека состоит как из книг так и из архивированных видеокурсов, что автоматом превращает их в большие файлы. Если делить хранилище на две части и раскидывать в одно большие, а в другое маленькие файлы - получается абсолютная каша. И это не совсем найс

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

Оставь в покое массив на пару суток. Ты его активно юзаешь и не даешь ему прочухаться после дефрагментации

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

Да я уже половину с него выкачал) дурная голова же рукам покоя не дает) я испытаю дефрагментацию и ожидание на пару недель на стендовом компе, чтобы убедиться, что просто нужно время

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

Если файл туда положили за 1 раз, то он будет более-менее последовательно лежать. А тысяча последовательных мелких файлов ничему не поможет, т.к. скачивать их будут в рандомном порядке и крайне маловероятно что он совпадёт с расположением на диске.

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

Во-первых, даже если ты медиатеку отделишь уже будет лучше. Во-вторых, в чём будет заключаться каша? Расположение файлов на носителях и их представление клиентам в общем случае друг от друга не зависят. Показывать можно как и раньше всё, например симлинками.

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

А тысяча последовательных мелких файлов ничему не поможет, т.к. скачивать их будут в рандомном порядке и крайне маловероятно что он совпадёт с расположением на диске.

Одна директория в которой 1000 мелких файлов, как положил последовательно, так и будут лежать.

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

Во-во-во, молодец. В аккурат под отпуск. Как раз есть чем занять весь отпуск :). Лучше отложить, конечно же и поиграться после отпуска

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

А тысяча последовательных мелких файлов ничему не поможет, т.к. скачивать их будут в рандомном порядке и крайне маловероятно что он совпадёт с расположением на диске.

Чем эта «рандомность» блоков, если она есть, будет отличаться от рандомности блоков одного большого файла?

anc ★★★★★
()

Чисто теоретически запуск e4defrag мог сделать фрагментацию хуже, но это маловероятно. И это скорее бы испортило чтение фрагментов отдельных файлов, а не чтение файлов целиком. При обработке каждого файла e4defrag выделяет место под размер файла и перемещает содержимое файла в новое место. Но перемещение выполняется только если число фрагментов нового места файла меньше текущего числа. Если, скажем, изначально файл был побит на 100 кусков по одному мегабайту, а новое место состоит из 98 кусочков по 4 килобайта и одному сплошному куску на 99 с чем-то там мегабайт, то для e4defrag это выглядит как выгодная сделка, хотя в реальности чтение нового места будет вызывать знатный хруст. Но чтобы аллокатор ext4 выделил настолько странное место, хранилище должно быть забито почти под завязку. Обычно размеры кусочков примерно одинаковые, поэтому эвристика основанная исключительно на числе фрагментов в среднем работает.

Я думаю, что тут дело в том, что до фрагментации проверку проводили на одном наборе файлов, а после фрагментации продолжили на другом. Первый читался хорошо, а второй читается хуже. Например, первый набор данных представлял большие файлы по несколько гигабайт, а второй — большое число разбросанных по диску мелких файлов. Ещё и процесс ext4lazyinit довольно сильно роняет производительность жёстких дисков, если пытаться читать-писать, пока он не закончил читать битмапы. Это ещё добавляет ощущения «а-а-а, всё сломалось». Но его легко переждать, это всего лишь несколько минут после холодной перезагрузки.

Так что вряд ли запуск e4defrag как-то повлиял.

i-rinat ★★★★★
()
Ответ на: комментарий от serg002

У меня после удаления больших файлов еще некоторое время(от часа и более) диск подхрюкивает. Хр-хр-хр-хр. Через определенный интервал опять Хр-хр-хр-хр. При этом в iotop какой-то процесс связанный с диском появляется и немного io забивает.

Похоже, что накопители сами инициируют этот хруст. У меня подобное воспроизводилось, даже когда я накопитель отмонтировал, а blktrace не показывал никакого доступа к диску со стороны хоста. Контроллер диска просто сам решает пошуршать головками. Судя по спискам, диски у меня CMR.

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

Это из него песок сыпался :)
А без шуток:

даже когда я накопитель отмонтировал
Судя по спискам
спискам
диски

Вы на основании чего решали, что именно отмонтированный шуршал?

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

на основании чего решали, что именно отмонтированный шуршал?

┌──────────────────────────┐
│                          │
│       Laptop             │     ┌───────────────────┐
│                          │     │   USB enclosure   │
│     ┌──────────┐         │     │                   │
│     │   SSD    │         ├─────┤   ┌────────┐      │
│     └──────────┘         │     │   │  HDD   │      │
│                          │     │   └────────┘      │
└──────────────────────────┘     └───────────────────┘
i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

USB enclosure

Если внешний диск не самосбор, то вероятность SMR увеличивается (даже если такой же диск, продаваемый отдельно, без коробочки, CMR).

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

Читал историю в те годы, когда буквы SMR только начинали становиться известными. Кто-то купил внешний HDD (например, от Сигейт) по цене ниже, чем просто диск такой же ёмкости, вытащил диск из коробочки, и некоторое время радовался, пока не начались странности, присущие SMR. Так партнамбер диска был, вроде бы, такой же, как у обычного диска, продаваемого отдельно и без черепичной технологии.

greenman ★★★★★
()
Ответ на: комментарий от i-rinat

Контроллер диска просто сам решает пошуршать головками

Да. Этот процесс именно внутренний. Но иногда после удаления что-то на уровне фс происходит. В iotop висит процесс, который io потребляет

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

Ближе к внешнему краю блинов, где скорость выше, а при дефрагментации перемещаются ближе к центру

Так файлы же не линейно записываются на диск

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

Итак дамы (если тут есть дамы) и господа! После тщательных проверок, тонны инициализаций и переинициализаций, проверок, записей и чтений в разных приложениях, операционках и файловых системах, пришел к выводу, что проблема была отнюдь не в фрагментации данных. Дело в том, что у меня аппаратный контроллер и у него есть такая функция как «Patrol Read» (Для незнающих: помогает обнаруживать и исправлять плохие блоки на жестких дисках и предотвращать возможную потерю данных. Patrol Read генерирует значительное количество запросов к диску, которые могут уменьшить производительность RAID контроллера). Когда он включен - скорость записи и чтения о-о-очень существенно снижается. При выключенном состоянии данной функции - все считывается и записывается мега-быстро (скорость записи достигает 450 мб/с, а скорость чтения при включенном кэше на дисках может подниматься и до 700-800). Думаю данную тему можно считать закрытой. Всем спасибо за участие и да прибудет с вами сила

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

Patrol Read после перемещений файлов начал шуршать по диску? Или ты попутно дефрагментации включил Patrol Read и перевозбудил половину ЛОРа? :)

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

Patrol Read работал все время) Он включился скорее всего тогда, когда я сбросил все настройки контроллера некоторое время назад. А поскольку я не знал о такой функции - возникло непонимание, почему так происходило. По всей видимости Patrol Read начинает мешать работе дисков после дефрагментации особенно сильно. Но вот что интересно… На ext4 эта функция мешает ТОЛЬКО после дефрагментации. Именно после нее включается процесс «ext4lazyinit». Если брать во внимание NTFS, то эта функция мешает с самого начала. С чем связано такое поведение - не знаю. Но как только я ее отключил все стало прекрасно. Не скажу, удалось ли победить «ext4lazyinit», потому что конечные тесты проводил внутри Windows (особенно при помощи сторонней утилиты). Планирую на днях провести аналогичную проверку на Linux, чтобы понять, будет ли каким-либо образом мешать «ext4lazyinit»

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

после дефрагментации. Именно после нее включается процесс «ext4lazyinit»

Нет, этот процесс не зависит о того, производилась дефрагментация или нет. Возможно, ты просто на него стал обращать внимание после запуска дефрагментации.

Единственная связь с фрагментацией — чтение битовых карт свободного места, которое производится внутри нити ext4lazyinit, снижает шанс фрагментации при записи новых файлов на ФС. С кешированными картами распределитель с большим шансом найдёт сплошное свободное место. Без кешированных карт будет использовано почти любое подходяещее свободное место, которое может оказаться сильно раздробленным.

i-rinat ★★★★★
()