ext4、btrfsファイルシステムにxattrsを保存する費用はいくらですか?

ext4、btrfsファイルシステムにxattrsを保存する費用はいくらですか?

nファイルとディレクトリに長さxattrsを追加するのに費用がかかる可能性があると思います。lfd

  • 保存
  • ルート確認時間/アクセス時間?
  • ディレクトリの繰り返し? (新しい(再起動後にキャッシュされていない)ファイルシステムを繰り返し見つけますか?)

この手数料がいくらか知りたいです。たとえば、すべてのファイルを表示すると、ストレージ容量とパフォーマンスに大きな影響がありますか?それ以下では無視できる影響を、それ以上ではファイルシステムに影響を与えるしきい値は何ですか?

これらの分析のために、xattrの制限 - >他のファイルシステムに入れることができるxattrの数とxattrのビット数を考慮することをお勧めします。

(便利だと思うなら、ext4やbtrfs以外のファイルシステムに関する情報を含めることができます。ありがとうございます)

答え1

ext4(BtrFSについては言えません)では、小さなxattrsを保存することはinodeに直接適しており、パスチェックやディレクトリの繰り返しパフォーマンスには影響しません。

「小さい」xattrに使用できるスペースの量は、フォーマットされたinodeのサイズによって異なります。最新のext4ファイルシステムは512バイトのデフォルトのinodeサイズを使用し、古いext4ファイルシステムは256バイトを使用し、inode自体とxattrヘッダーに約192バイトを使用します。残りは拡張属性に使用できますが、通常SELinuxおよび他の場合はすでに拡張属性があります( " getfattr -d -m - -e hex /path/to/file"はすべての拡張属性をinodeにダンプします)。このスペースに収まらないすべてのxattrは外部ブロックに保存されます。または、4 KBより大きく新しいカーネル(4.18以降)がある場合は、外部inodeに保存できます。

ワークロード(Sambaなど)でxattrパフォーマンスが重要な場合は、フォーマット時にmke2fs -I <size>オプションを使用してinodeサイズを変更してxattrにさらに多くのスペースを提供できます。

関連情報