LoginSignup
7

More than 5 years have passed since last update.

SquashFSの圧縮形式

Posted at

SquashFSをマウントするまでの続きです。
mksquashfsによるイメージ作成時の圧縮形式オプションを変更し、圧縮率や展開速度のパフォーマンスを見ていきます。

圧縮形式

squashfsの圧縮形式はgzip(標準)/lzo/xzの3種類を使用することできる

一般的に3種類ぞれぞれの圧縮率と展開速度の関係は以下の通りで、
バランスの良さからgzipが標準になっているようである。

高<---  圧縮率  --->低
xz    gzip    lzo

高<---  展開速度 --->低
lzo    gzip    xz

圧縮形式は-compオプションで指定する。
前回に引き続いて/usr/share/docをlzoとxzで圧縮したイメージを作成します。

$ mksquashfs /usr/share/doc doc_lzo.sfs -comp lzo
$ mksquashfs /usr/share/doc doc_zx.sfs -comp xz

圧縮率

それぞれの圧縮形式で作成したイメージのサイズおよび元々のサイズ(origianl)は以下の通り。

original gzip lzo xz
77.1MB 37.3MB 37.8MB 36.5MB

展開速度

展開速度(ファイル読み込み速度)をいくつかの観点で比較を行う。
originalのファイルシステムはext4である。

また、各計測間の速度に影響が出ないように以下コマンドでキャッシュを毎回クリアする。

# echo 3 > /proc/sys/vm/drop_caches

ディレクトリ情報の参照

以下コマンドを対象(マウント)ディレクトリ配下で実行する。

$ time ls -lR | cat > /dev/null
original gzip lzo xz
4.834s 2.942s 3.060s 3.101s

ファイル読み込み

以下コマンドを対象(マウント)ディレクトリ配下で実行する。

$ time tar cf - . | cat > /dev/null
original gzip lzo xz
15.782s 9.199s 8.829s 18.879s

まとめ

一般的なパフォーマンスの関係は最初に書いた通りになるが、圧縮対象次第で変わることもあるので、
計測を行った上でバランスを見ながら圧縮形式を選択するとよいでしょう。

参考サイト

Squash Fs Comparison(http://elinux.org/Squash_Fs_Comparisons)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7