测试方法

  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%

Linux 压缩方式测试的更多相关文章

  1. Linux下几种常见压缩方式测试对比

    目录 Linux下几种常见压缩方式测试对比 参考 简介 测试 总结 Linux下几种常见压缩方式测试对比

  2. Linux —— 压缩文件

    Linux——压缩文件 为什么需要压缩文件?    文件在传输过程中,可能由于文件过大,传输所需时间过多.减少文件大小有两个明显的好处,一是可以减    少存储空间,二是通过网络传输文件时,可以减少传 ...

  3. Linux压缩那些事儿

    tar简介 Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩.所以在了解解压缩之前就必须先了解打包命令. Lin ...

  4. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  5. Kali Linux Web 渗透测试视频教程— 第十三课-密码破解

    Kali Linux Web 渗透测试— 第十三课-密码破解 文/玄魂 目录 Kali Linux Web 渗透测试— 第十三课-密码破解............................... ...

  6. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  7. linux 压缩文件的命令总结

    Linux压缩文件的读取 *.Z       compress 程序压缩的档案: *.bz2     bzip2 程序压缩的档案: *.gz      gzip 程序压缩的档案: *.tar     ...

  8. linux使用FIO测试磁盘的iops 【转载】

     linux使用FIO测试磁盘的iops 2013-09-23 10:59:21 分类: LINUX FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括 ...

  9. linux压缩及vi操作

    一:Linux的压缩方式 1.tar cvf 对文件进行压缩,tar cvf+压缩文件完成的命名+需要压缩的文件 2,tar -tf +命名的压缩文件:表示查看目录里面的内容 3,tar -xf 解压 ...

随机推荐

  1. PHP 补零操作

    str_pad(string,length,pad_string,pad_type)//参数 描述string //必需.规定要填充的字符串.length //必需.规定新的字符串长度.如果该值小于字 ...

  2. IOS订阅优惠-PHP生成ECDSA算法签名

    <?php use Ramsey\Uuid\Uuid; class ItunesSignatureGenerator { private $appBundleID = 'www.u17.com' ...

  3. GitHub从小白到熟悉<六>

    复制或 克隆 项目 

  4. 可能是把 Java 内存区域讲的最清楚的一篇文章

    出处:  可能是把 Java 内存区域讲的最清楚的一篇文章 Java 内存区域详解 写在前面 (常见面试题) 基本问题 拓展问题 一 概述 二 运行时数据区域 2.1 程序计数器 2.2 Java 虚 ...

  5. 使用jdbc操作ClickHouse

    使用jdbc操作ClickHouse 2018年07月01日 01:33:00 狮子头儿 阅读数 10501   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...

  6. div+css布局教程(1)

    margin:Margin属性用于设置两个元素之间的距离. 后面如果只有两个参数的话,第一个表示top和bottom,第二个表示left和right因为0 auto,表示上下边界为0,左右则根据宽度自 ...

  7. python字典保存至json文件

    import os import json class SaveJson(object): def save_file(self, path, item): # 先将字典对象转化为可写入文本的字符串 ...

  8. js特效背景--点线随着鼠标移动而改变

    https://blog.csdn.net/css33/article/details/89450852 https://www.cnblogs.com/qq597585136/p/7019755.h ...

  9. webpack 打包 UglifyJs 报错

    Vue-cli 打包报错: ERROR in static/js/4.784ab4a1238de8e94312.js from UglifyJs Unexpected token: 原因:Uglify ...

  10. 牛客练习赛47 E DongDong数颜色 (树上启发式合并)

    链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...