SquashFSは解凍をどのように処理しますか?私はSquashFSファイルシステム上のLZ4のオーバーヘッドに興味があります。私の理論は、SquashFSファイルシステムのファイルが読み取りプロセス中に解凍されることです。ディレクトリのリストはどうですか?
ベストアンサー1
SquashFSにはいくつかの詳細なドキュメントがあります。カーネル文書から。 inodeおよびディレクトリエントリを含むSquashFSファイルシステムのすべてのコンテンツを圧縮でき、inodeおよびディレクトリエントリも圧縮率を向上させるように設計されています。
つまり、ファイルシステムから読み取られたすべてのデータまたはメタデータには解凍が含まれますが、オーバーヘッドは減ります。キャッシュの使用:
- ファイルデータはページキャッシュに解凍されるため、同じページを複数回読み取るときにデータを複数回圧縮する必要はありません。
- メタデータとフラグメント(テールエンドパックチャンク)は小さな特定のメタデータとフラグメントキャッシュに解凍されるため、同じメタデータチャンクを複数回読み取ることができます(例えばディレクトリの内容を一覧表示するとき)同じブロックを複数回解凍する必要はありません。
さまざまなインデックス(ブロック、ユーザー、グループ識別子、フラグメント)に関連する作業を高速化するためのさまざまなルックアップテーブルもあります。