web-dev-qa-db-ja.com

ZFS gzip-9圧縮が実際にZipファイルを使用するよりもはるかに悪いのはなぜですか?

私はいくつかの非常に大きなパケットキャプチャファイル(30ファイルで最大150GB)を使用していますが、パケットキャプチャの冗長性が非常に高いため、これらは.Zipファイルを使用して元のファイルサイズの約7%(14.29x)に圧縮されます。

「compression = gzip-9」設定でZFSパーティションを作成することにより、これらのファイルを「ネイティブに」操作できるかどうか疑問に思いました。パーティションを作成し、パケットキャプチャをコピーしたところ、圧縮率は20.83%(4.80x)でした。

なぜこんなに大きな食い違いがあるのだろうか。

2
Chuu

これは、各レコード(ファイルブロック)が個別に圧縮されるためです(大きなファイルの場合はファイルの中央から読み取ることができます)。大きなレコードサイズを設定します。

zfs set recordsize=128k zpool/fsname

または、レコードサイズが大きい新しいファイルシステムを作成します。

zfs create -o recordsize=128k zpool/fsname

この設定は、ファイルシステムfsnameで作成された新しいファイルにのみ影響します。

5
Mikhail Kupchik