LINUX.ORG.RU

К вопросу о дефрагментации ext4 в сильно нагруженной среде

 ,


0

1

Посоветуйте решение:

Как я понял, нужна именно дефрагментация каталогов

-------------------

Есть рабочий комп 16GB RAM / 2TBx2->RAID0 = 4TB ext4

Есть сервер для ловли skynet 1GB RAM / 512GBx2->RAID0 = 1TB ext4

На рабочем компе развёрнута куча SDK и требуется частое копирование/поиск всё время разных текстов в исходниках SDK. over 6млн файлов Часто копируется весь SDK с кучей директорий и текстов ядра, правится / заменяется часть и т.д. В работе десятки SDK.

cat /proc/mdstat md0 : active raid0 sdb1[1] sda1[0] 3907024896 blocks super 1.2 512k chunks

На сервере складируются множество файлов skynet, параллельно пишутся во много потоков, стираются и сильно дефрагментируются. over 2млн файлов

md0 : active raid0 sdb1[0] sdc1[1] 976768896 blocks 64k chunks

Задачи: поиск файлов по имени, по имени и содержимому, поиск в архивах по имени.

--------------

Даже после того, как произведён поиск и вроде бы каталоги считались в память, стоит запустить компиляцию, память занимается и следующий поиск опять идёт нереально медленно. Каталоги разбросаны по диску.. Не помогает копирование на другой диск/обратно, сжатие/разжатие.. Тысячи каталогов создаются вперемешку с файлами..

от e4defrag толку нет. Поиск по диску файла с определённым именем занимает столько времени, как будто комп рожает.

Вспоминаю fat32 и дефрагментацию программой (вроде Norton) с галочкой «директории вперёд». После этого поиск файла по имени занимал на 200GB диске считанные секунды. в NTFS и EXT4 с этим полная лажа.

Как оптимизировать именно директории в ext4 ?

------------------

Есть решение типа Paragon Total defrag, не пробовал, и для этого нужно выключать комп и в моём случае, это ненадолго. Опять будет дефрагментация, ведь будут полные копии SDK с 10-30% замещением текстов и т.д. Про кучи файлов skynet вообще молчу. Директорий на сервере немного. По имени поиск быстро. Но поиск по архивам с указанием имени файла - это тоже долго.

Может перейти на другую FS? В какой FS есть дефрагментация каталогов? Подскажите, у кого есть опыт?

насколько я знаю рейзер шустро работает с большим количеством мелких файлов и каталогов.

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

gparted говорят может шринковать
только нужно загружаться с live-cd

также: snake

kto_tama ★★★★★ ()
Последнее исправление: kto_tama (всего исправлений: 1 )

нужна именно дефрагментация каталогов

Такого под Linux ни в одной ФС нет. Только mv на новый раздел.

KRoN73 ★★★★★ ()

т.к. тут мелкоблочной случайный доступ, то стоит подумать об ssd (если размер рабочих файлов на него влезет)

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

e4defrag /dev/md0 8 часов спустя: Success: [ 5014458/6180947 ] Failure: [ 1166489/6180947 ]

может быть как-то можно указать, чтобы именно директории делались в начале fs, или как-то их как файлы дефрагментировать?

Какие есть ещё варианты?

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

может быть как-то можно указать, чтобы именно директории делались в начале fs

Увы, никак :-/

Какие есть ещё варианты?

Только mv на новый раздел.

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

e4defrag /dev/md0 -c

спустя 2 часа:

Total/best extents 5108676/5013835 Average size per extent 721 KB Fragmentation score 0 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag] This device (/dev/md0) does not need defragmentation. Done.

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