ZFS compression algorithm lzjb, gzip, gzip-[0-9], zle, lz4 compare

zfs提供几种压缩算法, 
lzjb, gzip, gzip-[0-9], zle, lz4
其中默认的压缩算法为lzjb, 这个是ZFS的作者Jeff Bonwick提供的, gzip默认的压缩级别为6, 或者指定压缩级别.
这里主要测试一下压缩时间和压缩比.
注意, 压缩选项默认是关闭的, 压缩选项针对dataset来设置, 同一个pool中不同的dataset可以设置不同的压缩算法, 也可以开关混用. 对于未使用压缩的dataset, 如果已经存在数据的话, 开启压缩后, 之后的数据会压缩, 但是之前存储的数据不会变动. 
首先测试的是lzjb.
[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# zfs set compression=lzjb zp/test
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:00:45
2014-05-1916:01:00  15秒
[root@spark01 digoal]# zfs get all zp/test|grep compress
zp/test  compressratio         1.49x                  -
zp/test  compression           lzjb                   local
zp/test  refcompressratio      1.49x                  -

测试gzip
[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# zfs set compression=gzip zp/test
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:01:47
2014-05-1916:02:02  15秒
[root@spark01 digoal]# zfs get all zp/test|grep compress
zp/test  compressratio         1.77x                  -
zp/test  compression           gzip                   local
zp/test  refcompressratio      1.77x                  -

测试gzip-9
[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# zfs set compression=gzip-9 zp/test
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:03:01
2014-05-1916:03:18  17秒
[root@spark01 digoal]# zfs get all zp/test|grep compress
zp/test  compressratio         1.59x                  -
zp/test  compression           gzip-9                 local
zp/test  refcompressratio      1.59x                  -


测试zle


[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# zfs set compression=zle zp/test
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:03:47
2014-05-1916:04:04  17秒
[root@spark01 digoal]# zfs get all zp/test|grep compress
zp/test  compressratio         1.09x                  -
zp/test  compression           zle                    local
zp/test  refcompressratio      1.09x                  -

测试lz4
[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# zfs set compression=lz4 zp/test
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:04:25
2014-05-1916:04:39  14秒
[root@spark01 digoal]# zfs get all zp/test|grep compress
zp/test  compressratio         1.43x                  -
zp/test  compression           lz4                    local
zp/test  refcompressratio      1.43x                  -

不压缩的情况测试 : 
[root@spark01 digoal]# zfs set compression=off zp/test
[root@spark01 digoal]# rm -rf /zp/test/*
[root@spark01 digoal]# date +%F%T; cp -r hadoop-2.4.0* spl-0.6.2* zfs-0.6.2* /zp/test/ ; date +%F%T;
2014-05-1916:09:19
2014-05-1916:09:38  19秒


从测试结果来看, gzip6的压缩比最高, 同时时间也比较折中, 推荐使用.
另外作者的算法lzjb也是被大多数人推荐使用的.
建议所有的dataset都开启压缩, 从测试数据来看, 显然CPU不是问题, IO是大问题. 因为未开启压缩的情况下, 耗时是最长的.

[参考]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值