• 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。

    压缩方式 压缩时长 压缩后大小 压缩率
    lzo 19s-21.8s 2067143270/2.0G 52.75%
    lz4 17.2s 2060209418/2.0G 52.57%
    zstd 49.4s 1227117514/1.2G 31.32%
    snappy 17s 936100017/0.87G 52.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

    压缩方式 压缩时长 压缩后大小 压缩率 压缩速度
    lzo real 26m6.676s
    user 8m42.716s
    sys 1m25.524s
    60451038045/57G 52.75% 114.03 M/s
    lz4 real 25m42.393s
    user 7m16.460s
    sys 1m23.592s
    60249247392/57G 52.57% 106.90 M/s
    zstd real 42m46.340s
    user 23m37.792s
    sys 1m11.096s
    35886186839/34G 31.31% 101.43 M/s
    解压方式 解压时长 解压后大小 数据损失率 解压速度
    lzo real 25m10.172s
    user 6m49.908s
    sys 1m30.888s
    114599669632 0% 102.2 M/s
    lz4 real 28m54.584s
    user 2m2.332s
    sys 1m42.312s
    114599669632 0% 72.39 M/s
    zstd real 26m47.456s
    user 5m16.156s
    sys 1m31.908s
    114599669632 0% 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使用率
    lzo real 0m12.810s
    user 0m9.544s
    sys 0m2.316s
    1147353171 / 1.1G 52.73% 162 M/s 占用4%~25%
    lz4 real 0m14.205s
    user 0m8.072s
    sys 0m2.792s
    1143524488 / 1.1G 52.56% 146.08 M/s 占用6%~20%
    zstd real 0m41.900s
    user 0m28.872s
    sys 0m3.248s
    681113354 / 650M 31.30% 49.52 M/s 占用11%~25%
    snappy 18.712 s 1146400478 / 1.1G 52.7% 92.9 M/s 占用4%~22%
    解压方式 解压时长 解压后大小 数据损失率 解压速度 CPU使用率
    lzo real 0m25.260s
    user 0m7.428s
    sys 0m5.472s
    2175836454 0% 82.147 M/s 占用3%~12%
    lz4 real 0m6.931s
    user 0m2.360s
    sys 0m1.884s
    2175836454 0% 299.4 M/s 占用6%~9%
    zstd real 0m21.659s
    user 0m6.080s
    sys 0m2.808s
    2175836454 0% 95.8 M/s 占用8%~13%
    snappy 3.856s 2175836454 0% 538.05 M/s 占用6%~12%
  • 相关阅读:
    常见HTTP状态(304,)
    面试错题集
    从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记1
    windows 以太坊开发框架Truffle环境搭建
    Ollydbg使用问题汇总
    网络攻防实战技术之——缓冲区溢出篇
    如何批量删除.svn文件
    树莓派安装nextcloud、Seafile
    汇编语言从入门到精通-5微机CPU的指令系统2
    kali安装vm tools正确操作
  • 原文地址:https://www.cnblogs.com/fengzzi/p/10033587.html
Copyright © 2020-2023  润新知