LINUX.ORG.RU

Улучшить файловую таблицу?

 


1

2

Существует множество «улучшателей» файловых систем - дефрагментаторы. Для различных файловых систем:

Но все эти тулсы «улучшают» не совсем то, что нужно. Хотелось бы чего-нибудь более простого и понятного, вроде fsremake:

  1. На основании некого понятия об «образцовой» файловой таблице посчитать «плохость»(badness) существующей таблицы и выдать её.
  2. Создать «копию» файловой таблицы, подсчитать её «плохость».
  3. Если «плохость» «копии» меньше или указан режим -force переключить раздел на «копию», а исходную таблицу высвободить.

Есть ли подобные утилиты и (если есть) как они называются?

Дополнение 1:

«Плохость» - отличие от «образца». Естественно для каждой фс «образец» свой. И здесь уже надо разбираться в структуре фс, чем похвастать не могу. Цель - привести файловую таблицу как можно ближе к «образцу».

Дополнение 2:

Структура таблицы фс изначально простая. По мере заполнения усложняется. Некоторые усложнения излишни. Таблица без «лишних» усложнений - «образец». «Образец» реально не существует.

Существующие на данный момент «решения»:

  • HFS - # fsck.hfs r /dev/sdX
  • EXT - # fsck.ext4 -yfD /dev/sdcN
Deleted

Ты в начале напиши что такое «плохость» существующей таблицы?

Файлы читаются, пишутся, ошибок в служебной информации файловой системы нет, данные о занятом и свободном пространстве корректные - значит всё в порядке и файловая система в полном порядке.

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

kostik87 ★★★★★ ()

Активный пользователь ускорителей интернета, оптимизаторов реестра, дефрагментаторов диска детектед.

Такие еще гомеопатию любят.

redixin ★★★★ ()

Чё-то ты шизик.

А так посмотри e4rat.

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

Ты в начале напиши что такое «плохость» существующей таблицы?

Я же написал, «плохость» - отличие от «образца». Естественно для каждой фс «образец» свой. И здесь уже надо разбираться в структуре фс, чем похвастать не могу. Цель - привести файловую таблицу как можно ближе к «образцу».

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

Активный пользователь ускорителей интернета, оптимизаторов реестра, дефрагментаторов диска детектед.

Всё не то. Речь о другом.

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

Что такое образец файловой системы? Объясни.

Ну вот есть у тебя некоторая файловая система, допустим ext4, созданная определённой версией утилиты mkfs и далее с ней работают через драйвер некоторой версии ядра.

Что ты хочешь поместить в свой образец? Что это и зачем?

В процессе работы на файловую систему записываются данные, а что будет с твоим образцом?

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

Что такое образец файловой системы? Объясни.

Структура таблицы фс изначально простая. По мере заполнения усложняется. Некоторые усложнения излишни. Таблица без «лишних» усложнений - «образец». «Образец» реально не существует.

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

Избегать людей в белых халатах, не лечить ОКР.

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

Сделай mkfs заново на устройстве и у тебя будет заново просиая таблица файловой системы, но пустая :)

Это же твоя цель.

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

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

Всё, тему можно закрывать.

Удачи.

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

А усложняется она потому, что на неё пишутся данные

Я так и написал. Но «лишние» усложнения - это badness.

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

Не пиши на неё файлы, монтируй в read only.

Всё, тему можно закрывать.

Удачи.

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

Журналирование их и так в хорошем состоянии поддерживает.

«Хорошее» != другое «хорошее».

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

Возможно, он имел ввиду перестроение B-дерева фс с сохранением данных, такое может делать fsck.hfs через

fsck.hfs r /dev/sdX
в Линуксе, насчет остальных фс - не знаю.

Если что, то вот секция help этой утилиты:

root@home:~ # fsck.hfs
...
usage: fsck.hfs [-c [size] dfl m [mode] npqruy] special-device
...
r = rebuild catalog btree
...

anonymous ()

fsck.ext4 -yfD /dev/sdcN для оптимизации директорий, полезно для любителей игр из стима ну и вообще для котиков которые часто кучу файлов/папок туда сюда гоняют.

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

он имел ввиду перестроение B-дерева фс с сохранением данных

Именно то, что я и хотел. Но только для всех фс. Или кто-то не смог перевести fsremake.

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

D

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

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

Единственный работающий способ — пересоздать их.

А пересоздать в «автоматическом режиме», как я изначально спрашивал, никак нельзя?

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

Почему нельзя? Можно. Делаешь автоматический пересоздаватор и пересоздаёшь им в автоматическом режиме.

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

Можно. Делаешь автоматический пересоздаватор

Значит нет таких в строю. Плохо.

Без таких простых и понятных тулз, разговоры о поддержке фс - напыщенный трёп.

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

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

anonymous ()

Оп, не дефрагментируй ext4, это не fat или ntfs. А остальные сливают на всём кроме пары узкоспециализированных задач (типа маилсервера) или просто сливают по всем параметрам. Просто не клади много файлов в 1 каталог (не удаляй) если хочешь более эффективного использования дискового пространства.

Больше зависит от того с каким ядром и какой версией e2fsprogs та ext4 создавалась, нынешние дефолты ок для большинства юзкейсов.

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

Эта опция чистит нечто в кишках метаданных ФС, само содержимое директорий не затрагивается. Навигация по директориям должна стать быстрее после применения.

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

Дефрагментация помогает если хочется смотреть всякие BDRip'ы гигантского размера купленные на торрентах (особенно если нет 128GB RAM чтобы положить киношку в рамдиск).

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

Сколько тысяч идеальное значение?

Не думаю, что на этот вопрос вообще можно ответить однозначно. Наверное, пока директории не станут слишком большими.

Допустим, размер блока 4096 байт. Директория в самом худшем случае может быть побита на блоки такого размера. Если в директории сто кусочков, а живём мы на обычном потребительском hdd, то это где-то 15 мс * 1000 = 1,5 секунды на первое чтение. Вот примерно так прикидываешь, и определяешь, какой размер для тебя максимальный. Потом экспериментально определяешь, сколько файлов влезет в такой размер директории. Число будет меняться в зависимости от средней длины имени файлов.

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

Эта опция чистит нечто в кишках метаданных ФС, само содержимое директорий не затрагивается.

Как можно вот так вот верить в непонятно что?

Навигация по директориям должна стать быстрее после применения.

Если вдруг это была директория без htree, то запуск fsck с опцией -D это дерево создаст, и на больших директориях доступ к файлам может стать заметно быстрее. Но где ты сейчас найдёшь такие директории? Разве что у тебя была ext2, которую ты с годами конвертировал в ext3, а затем в ext4.

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

Разве что у тебя была ext2, которую ты с годами конвертировал в ext3, а затем в ext4.

Признавайся как ты следишь за мной! (олсо, я ещё и размер менял туда и обратно.)

Как можно вот так вот верить в непонятно что?

Один мой товарищ также репортил об увеличении отзывчивости ФС после применения данной опции.
Ну дерево может повредиться как я понимаю. Экстренный ребут и у ФС есть незакрытый гештальт. (Хотя меня больше волнует может ли что-то произойти с деревом директорий в метаданных ФС при очень интенсивном использовании — создании и удалении множества директорий).
По доброй традиции замеров и бенчмарков я не проводил, но становилось чуть лучше имхо.

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

Ну дерево может повредиться как я понимаю. Экстренный ребут и у ФС есть незакрытый гештальт.

От этого должно спасать журналирование. Собственно, оно только от этого и спасает — его задача состоит в поддержании согласованности метаданных.

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

От этого должно спасать журналирование.

Ну как бы да, типа должно.

Собственно, оно только от этого и спасает — его задача состоит в поддержании согласованности метаданных.

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

Exmor_RS ★★★ ()

Звучит как безумие.

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

Но по наблюдениям делает она явно не то, что от неё ожидается.

Я понимаю, что это слишком просто, но в man e2fsck прямо так и написано:

This can sometimes make them a little smaller and slightly faster to search <...>

sometimes

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

Как можно вот так вот верить в непонятно что?

Всё что вокруг происходит состоит из таких верований на 99%. Реально боттлнек людей.

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

А чего иронзировать. Так всё что ты перечислил это изобретения рыночка США. И гомеопатия там же зародилась и там же её крепко любят: денех на лечение-то Луышей Медициной Мира у рядовых пендосов нет.

anonymous ()

файловую таблицу

Кажется, кто-то перечитался описаниями FAT-а и NTFS-ного MFT.

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

Так и есть. На разграблении всего мира пендосия построилась, на этом и держится.

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

У тебя Платон головного мозга, что ли? Не разбираясь в устройстве ФС, придумал себе какой-то Образец файловой системы, и страдаешь теперь. Нет никакого образца, кончай хернёй страдать. ФС, которая уже лет 5 используется, почти ничем не хуже свежесозданной.

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

Но только для всех фс

Тебе нужно перестроение B-дерева даже в тех ФС, которые не используют B-дерево?

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

Странно, что как-то иссяк поток оптимизаторов, предлагающих переписать ядро на ассемблере. Шоб летало усё!

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

Жрут ресурсы приложения а не ядро, его переписывание мало что даст.

Без помощи компилятора код выходит тормознее, процессоры слишком сложны.

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