Как узнать, включена ли в каталоге функция быстрого определения размера каталога APFS?

10

В технической документации Apple, содержащейся в Руководстве по файловой системе Apple, описывается, что некоторые каталоги /tmpне подходят для быстрого выбора размера каталогов.

Быстрое определение размера каталога осуществляется путем предварительного расчета размера каталога по мере добавления и удаления содержимого. Поэтому он наиболее подходит для каталогов, которые содержат много файлов и имеют относительно небольшой отток. Например, папка «Документы» пользователя является хорошим кандидатом для быстрого определения размера каталога, тогда как /tmpкаталог не будет.

Как я могу определить, включена или отключена эта функция в определенном каталоге, чтобы я мог выбрать, где выполнять интенсивную работу по оттоку, а где не выполнять такую ​​работу?

bmike
источник

Ответы:

1

Теперь мы знаем, что предыдущий ответ немного отклонился, так как Apple недавно выпустила больше технических деталей по APFS. Быстрое изменение размера каталога действительно включено для каждого каталога, и это может проверить пользователь (хотя и не легко). Его можно включить только в том случае, если каталог пуст, и его также необходимо включить для каждого нового подкаталога. Подробности: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Соответствующая цитата

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

Теперь мы знаем, что вы должны установить этот флаг, чтобы включить FDS

INODE_MAINTAIN_DIR_STATS: индекс отслеживает размер всех своих дочерних элементов

Хотя мне все еще неясно, включает ли macOS этот флаг автоматически, где это уместно, или нет, но некоторые первоначальные эксперименты заставляют меня думать, что он еще не используется. Я предполагаю, что он будет использоваться в будущих обновлениях macOS.

Крис
источник
0

Короткий ответ

FDS является основной частью файловой системы на дисках, отформатированных в APFS. Это не то, что пользователям нужно включать / отключать, и это не то, что может применяться к одному каталогу, а не к другому.

Поскольку это сценарий «все включено», нет никаких терминальных команд, чтобы определить, включена ли в каталоге функция FDS. Вместо этого, если диск отформатирован в формате APFS, FDS включается. Если он не отформатирован в формате APFS, FDS недоступен.

Длинный ответ

К сожалению, информация, которую вы цитировали из технической документации Apple, неверно сформулирована, поэтому причина вашего вопроса.

Если диск отформатирован в формате APFS, то по всем направлениям применяется быстрое определение размера каталога. FDS - это не то, что пользователь может включить / отключить для каждого каталога.

Из-за этого пользователь также не может определить статус каталога для каждого каталога. То есть, если диск отформатирован как APFS, то во всех каталогах включена FDS .

Откуда возникает путаница (и, разумеется, в данном случае) - плохой выбор слов в документации Apple и созданная двусмысленность. Эта информация пыталась передать то, что пользователь получит наибольшую выгоду от FDS в тех каталогах, которые имеют много файлов, но мало меняются (например, папка «Документы» пользователя), тогда как они не получат большой выгоды (если таковые имеются) от FDS в каталогах. как /tmpпапка.

Кроме того, документация, на которую вы ссылались, была заменена страницей « О файловой системе Apple» . Единственное упоминание FDS на этой странице:

Apple File System предлагает улучшенные основы файловой системы, а также несколько новых функций, включая клонирование, моментальные снимки, совместное использование пространства, быстрое определение размера каталогов, атомарное безопасное сохранение и разреженные файлы.

Не делается никаких попыток объяснить, что означает FDS, кроме того, что это фундаментальная (читай базовая ) функция. Однако, если вы заинтересованы в некоторой предыстории:

В сложных и глубоких структурах каталогов в HFS + мы знакомы со временем, которое файловая система может потратить на вычисление размера дерева файловой системы. Это одна из распространенных причин зависания системы. Apple, с APFS, представила Fast Directory Sizing (FDS), где файловая система может быстро вычислить пространство, используемое иерархией каталогов, чтобы устранить эту проблему.

Источник: Хансен, К.Х., Тулан, Ф., Расшифровка файловой системы APFS, Цифровое расследование (2017)

Мономет
источник
Правда ли, что если диск отформатирован как APFS, то во всех каталогах включена FDS? Этот комментарий предполагает, что он установлен для каждого индекса, и что сначала вы должны создать такой каталог, а затем переместить в него элементы. Конечно, в моей собственной системе размеры папок не отображаются очень быстро в Finder (это была обновленная система, а не чистая установка).
Винсент
К сожалению, это совершенно неправильно и должно быть обновлено. См. Документацию j_inode_flagsв справочнике по файловой системе Apple . Структура данных inode каталога действительно позволяет включать или отключать эту функцию для каждого каталога. Ничто там не говорит о том, что эта функция включена для всех каталогов автоматически, как указано в этом ответе.
Feuermurmel
Этот комментарий повторяется, несколько снисходителен и совершенно неверен. Цитаты в вопросе не «плохо сформулированы»; они явно несовместимы с этим ответом.
Матиас Винкельманн