ZFS ZLE compression の処理速度を計測2014年05月20日 19時31分21秒

ZFS ZLE 圧縮の比較。HP Pavilion dv6426us という七年物の古い機種での比較だと言うことを考慮に願いたい。

FreeBSD 8.4-RELEASE の i386 で動かしている。ZFS は /mnt/zfs にプールが作られ、tmp ファイルシステムが作られている。/mnt/zfs/tmp となる。

dd で /dev/zero を 1GB 書き込み比較をする。まずは、圧縮無しの zfs。


$ zfs set compression=off zfs/tmp
% dd if=/dev/zero of=zero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 59.545426 secs (18032314 bytes/sec)
% dd if=/dev/zero of=/mnt/zfs/tmp/zero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 47.210015 secs (22743942 bytes/sec)
% ls -ls /mnt/zfs/tmp/zero
1048712 -rw-r--r--  1 uyota  uyota  1073741824 May 20 06:14 /mnt/zfs/tmp/zero

しっかりと、1GB 分のディスクが消費されている。二回計って、およそ五十秒と六十秒。

zle 圧縮を有効にし、再度同じ事を行う。


$ zfs set compression=zle zfs/tmp
% dd if=/dev/zero of=/mnt/zfs/tmp/zero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 17.574036 secs (61098191 bytes/sec)
% dd if=/dev/zero of=/mnt/zfs/tmp/zero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 9.323997 secs (115158963 bytes/sec)
% ls -ls /mnt/zfs/tmp/zero
1 -rw-r--r--  1 uyota uyota  1073741824 May 20 06:20 /mnt/zfs/tmp/zero
ファイルはディスク占用分は 1 になっている。最高圧縮時の場合だ。二回計って、およそ十八秒と十秒。三倍から六倍近く速くなっている。

なお、tmpfs に書き込むとこの速さが出る。2GB のメモリがあるので、swap は発生しない。


% dd if=/dev/zero of=/mnt/tmp/fszero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 2.148634 secs (499732316 bytes/sec)

参考記録として ufs で。ただ、zfs が USB 接続で、ufs は内蔵ディスク。元々 30% から 40% 位速いのでそのままでは比較は出来ない。しかし、バスの遅さを考慮しても、zle が二倍から四倍の速さで書き込んでいる。


% dd if=/dev/zero of=/mnt/ufs/zero bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 35.561051 secs (30194322 bytes/sec)

前回次回。