Linux 压缩方式测试

测试方法

  1. 使用 python 的 Faker 第三方包伪造数据,写入文件 test.txt
  2. 复制 test.txt 内容为 test2.txt ,将 test2.txt 的内容重定向到 test.txt 中,使 test.txt 的文件大小达到几G
  3. 使用lzo lz4 zstd snappy四种方式对test.txt文件进行压缩,比较压缩时间和压缩率
    1. )压缩率 = 压缩后大小/压缩前大小

测试结果1

测试时间:20181106

由于机器环境限制,test.txt 的大小为3.7G,具体为 3918598144。

压缩方式压缩时长压缩后大小压缩率
lzo19s-21.8s2067143270/2.0G52.75%
lz417.2s2060209418/2.0G52.57%
zstd49.4s1227117514/1.2G31.32%
snappy17s936100017/0.87G52.7%

说明:

  1. snappy没有命令行测试方法,使用hadoop安装snappy进行测试时,目前无法安装。。。

  2. 使用java程序对snappy压缩方法进行测试

    1) 由于文件过大,jar包运行时即使设置了最大运行内存,也会出现OOM错误,snappy所测试的文件大小调整为1.7G,具体为 1776111485

    2)此程序使用的是snappy-java 的jar包

测试结果2

测试时间:20181107

由于第一次的测试文件大小较小,这次对100G的文件进行压缩测试。

​ 已请运维人员对dev02进行200G硬盘挂载。

增加压缩速度和解压的相关记录。

​ 压缩速度 = 压缩前大小 / (real - user - sys) 压缩时长

​ 数据损失率 = ( 压缩前大小 - 解压后大小 ) / 压缩前大小

​ 解压速度 = 解压后大小 / (real - user - sys) 解压时长

test.txt 的大小为 107G,具体为 114599669632

压缩方式压缩时长压缩后大小压缩率压缩速度
lzoreal 26m6.676s
user 8m42.716s
sys 1m25.524s
60451038045/57G52.75%114.03 M/s
lz4real 25m42.393s
user 7m16.460s
sys 1m23.592s
60249247392/57G52.57%106.90 M/s
zstdreal 42m46.340s
user 23m37.792s
sys 1m11.096s
35886186839/34G31.31%101.43 M/s
解压方式解压时长解压后大小数据损失率解压速度
lzoreal 25m10.172s
user 6m49.908s
sys 1m30.888s
1145996696320%102.2 M/s
lz4real 28m54.584s
user 2m2.332s
sys 1m42.312s
1145996696320%72.39 M/s
zstdreal 26m47.456s
user 5m16.156s
sys 1m31.908s
1145996696320%91.12 M/s

说明:

  1. 以上测试过程中对内存无任何影响,CPU使用率提升30%左右

测试结果3

测试时间:20181108

主要以以下新要求进行测试:

  1. 数据文件的生成过程有可能对压缩有影响
    1. )本次测试文件的内容不要出现一大块的重复数据
  2. 文件内每条数据内至少10个key
    1. )调整数据生成过程
  3. 调整计算公式
    1. )压缩速度 = 压缩前大小 / real 压缩时长
    2. )解压速度 = 解压后大小 / real 解压时长
  4. 没有CPU的具体监控数据
    1. )在表内增加CPU的具体监控数据,主要对某个CPU进行数据采集
    2. )记录方式为 xx%~xx%

说明:

  1. 文件大小为 2.1G,具体是 2175836454
  2. CPU基础值为22%~23%
  3. snappy使用程序进行监控,记录时长为程序内记录的时长
压缩方式压缩时长压缩后大小压缩率压缩速度CPU使用率
lzoreal 0m12.810s
user 0m9.544s
sys 0m2.316s
1147353171 / 1.1G52.73%162 M/s占用4%~25%
lz4real 0m14.205s
user 0m8.072s
sys 0m2.792s
1143524488 / 1.1G52.56%146.08 M/s占用6%~20%
zstdreal 0m41.900s
user 0m28.872s
sys 0m3.248s
681113354 / 650M31.30%49.52 M/s占用11%~25%
snappy18.712 s1146400478 / 1.1G52.7%92.9 M/s占用4%~22%
解压方式解压时长解压后大小数据损失率解压速度CPU使用率
lzoreal 0m25.260s
user 0m7.428s
sys 0m5.472s
21758364540%82.147 M/s占用3%~12%
lz4real 0m6.931s
user 0m2.360s
sys 0m1.884s
21758364540%299.4 M/s占用6%~9%
zstdreal 0m21.659s
user 0m6.080s
sys 0m2.808s
21758364540%95.8 M/s占用8%~13%
snappy3.856s21758364540%538.05 M/s占用6%~12%

转载于:https://www.cnblogs.com/fengzzi/p/10033587.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值