ディレクトリでAPFS Fast Directory Sizingが有効になっているかどうかを確認するにはどうすればよいですか?


10

アップルのファイルシステムガイドにあるアップルの技術文書では、などの一部のディレクトリ/tmpは、高速ディレクトリサイジング機能に適していないと記載されています。

コンテンツが追加および削除されるときにディレクトリのサイズを事前計算することにより、高速なディレクトリサイジングが機能します。したがって、多くのファイルを含み、チャーンが比較的少ないディレクトリに最適です。たとえば、ユーザーのドキュメントフォルダーは高速なディレクトリサイジングの良い候補ですが、/tmpディレクトリはそうではありません。

特定のディレクトリでこの機能が有効になっているか無効になっているかを確認して、高速の「チャーン」作業をどこで行うか、そのような作業を行わないかを選択できるようにするにはどうすればよいですか?

回答:


1

Appleが最近、APFSに関するより詳細な技術情報をリリースしたため、以前の回答が少しずれていることがわかりました。確かに、高速なディレクトリのサイジングはディレクトリごとに有効になっており、これはユーザーが確認することができます(簡単ではありません)。これは、ディレクトリが空の場合にのみ有効にでき、新しいサブディレクトリごとにオンにする必要もあります。詳細:https : //developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

関連する引用

ファイルを含むディレクトリまたは他のディレクトリで直接ディレクトリの高速サイジングを有効にすることはできません。代わりに、最初に新しいディレクトリを作成し、その上で高速ディレクトリサイズ設定を有効にしてから、既存のディレクトリの内容を新しいディレクトリに移動する必要があります

FDSを有効にするには、このフラグを設定する必要があることがわかりました

INODE_MAINTAIN_DIR_STATS:iノードは、そのすべての子のサイズを追跡します

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が何を意味するのをさらに説明する試みはありません。FDSが基本的な(基礎となる)機能であるという事実以外にはありません。ただし、背景に興味がある場合:

HFS +の複雑で深いディレクトリ構造では、ファイルシステムがファイルシステムツリーのサイズの計算に費やすことができる時間に精通しています。これは、システムがハングする一般的な理由の1つです。AppleはAPFSとともにFast Directory Sizing(FDS)を導入しました。ファイルシステムは、この問題を取り除くために、ディレクトリ階層が使用するスペースをすばやく計算できます。

出典:Hansen、KH、Toolan、F.、Decoding the APFS file system、Digital Investigation(2017)


ドライブがAPFSとしてフォーマットされている場合、すべてのディレクトリでFDSが有効になっているというのは本当ですか?このコメントは、それがiノードごとに設定されていること、および最初にそのようなディレクトリーを作成してから項目をそこに移動する必要があることを示唆しています。確かに私のシステムでは、Finderでフォルダのサイズが非常に速く表示されないようです(これはアップグレードされたシステムで、クリーンインストールではありませんでした)。
wincent

悲しいことに、これは明らかに間違っており、更新する必要があります。ドキュメントを参照してくださいj_inode_flagsAppleファイルシステム参照を。ディレクトリのiノードのデータ構造により、ディレクトリごとのインスタンスでこの機能を有効または無効にすることができます。この回答に記載されているように、この機能がすべてのディレクトリに対して自動的に有効になっていることは記載されていません。
Feuermurmel

このコメントは反復的で、いくぶん軽蔑的で、完全に間違っています。質問の引用は「不適切な言葉」ではありません。彼らは明らかにこの答えと互換性がありません。
Matthias Winkelmann
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.