一、压缩
(1.1)使用gzip进行打包:
# time tar -zcf tar1.tar binlog*
real 0m48.497s
user 0m38.371s
sys 0m2.571s

(1.2)使用pigz压缩,同时设置最高压缩速度(-1)
# time tar -cv binlog* | pigz -1 -p 24 -k >pigz1.tar.gz
real 0m10.715s
user 0m17.674s
sys 0m1.699s

(1.3)  使用pigz压缩,默认压缩比

# time tar -cv binlog* | pigz -p 24 -k >pigz2.tar.gz
real 0m22.351s
user 0m39.743s
sys 0m1.341s

(1.4)使用pigz压缩,同时设置最高压缩比(-9)
# time tar -cv binlog* | pigz -9 -p 24 -k >pigz3.tar.gz
real 0m46.975s
user 1m26.118s
sys 0m1.473s

(1.5) 使用lz4压缩,同时设置最高压缩速度(-1)
# time tar -cv binlog* | lz4 -1 > lz41.tar.gz
real 0m4.969s
user 0m2.953s
sys 0m1.199s

(1.6) 使用lz4压缩,使用默认设置
# time tar -cv binlog* | lz4  > lz42.tar.gz
real 0m4.447s
user 0m2.958s
sys 0m1.185s

(1.7) 使用lz4压缩,同时设置最高压缩比(-9)
# time tar -cv binlog* | lz4 -9 > lz43.tar.gz 
real 0m56.144s
user 0m54.300s
sys 0m1.301s

以上方式的打包压缩后文件大小
127M tar1.tar              (1.1)
152M pigz1.tar.gz          (1.2)
127M pigz2.tar.gz          (1.3)
123M pigz3.tar.gz          (1.4)
216M lz41.tar.gz           (1.5)
216M lz42.tar.gz           (1.6)
163M lz43.tar.gz           (1.7)

二、解压缩:
(2.1)直接使用tar -xvf解压缩tar文件
# time tar -xvf tar1.tar
real 0m42.329s
user 0m9.134s
sys 0m2.704s

(2.2) 直接使用tar -xvf解压缩pigz打包的文件(pigz压缩的文件可以使用tar直接解压缩)
# time tar -xvf pigz1.tar.gz
real 0m42.048s
user 0m9.818s
sys 0m2.927s

(2.3)使用pigz -d对pigz压缩文件进行解压
# file=pigz1.tar && pigz -k -d $file.gz && time tar -xf $file
real 0m56.706s
user 0m0.074s
sys 0m2.588s

(2.4)不可使用tar -xvf解压lz4压缩的文件
# time tar -xvf lz41.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

(2.5)使用lz4 -d对lz4压缩文件进行解压
# file=lz41.tar && lz4 -d $file.gz $file && time tar -xf $file
Successfully decoded 1203701760 bytes                                          
real 0m59.851s
user 0m0.064s
sys 0m2.699s

三、结论:
从上列数据可以总结出以下结论:
1.使用pigz指命明显比gzip快(网上说法是5倍),但同时CPU消耗也比较大(网上说法是8倍左右),两者压缩后文件大小无异。
2.使用lz4能获得很好的压缩速度,但压缩的文件比用gzip和pigz稍大。
3.pigz压缩的文件可以直接用tar -x指令解压缩,而使用lz4压缩的文件不可。

从实现数据来看,如果目前系统想提高压缩解压缩速率,可以考虑切换到pigz压缩方式,不过会增大cpu消耗。在对压缩效率要求较高、但对短时间内CPU消耗较高不受影响的场景,使用pigz非常合适。

lz4,pigz,gzip 3者比较的更多相关文章

  1. 使用tar+lz4/pigz+ssh更快的数据传输

    使用tar+lz4/pigz+ssh更快的数据传输 -- | :41分类:Linux,MySQL | 前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速 ...

  2. 速度之王 — LZ4压缩算法(三)

    LZ4使用 make / make clean 得到可执行程序:lz4.lz4c Usage: ./lz4 [arg] [input] [output] input : a filename Argu ...

  3. FreeBSD_11 - 系统管理——{ Part_5 - ZFS }

    参考資料 http://docs.oracle.com/cd/E37934_01/html/E36658/toc.html https://www.freebsd.org/doc/en_US.ISO8 ...

  4. Filebeat配置参考手册

    Filebeat的配置参考 指定要运行的模块 前提: 在运行Filebeat模块之前,需要安装并配置Elastic堆栈: 安装Ingest Node GeoIP和User Agent插件.这些插件需要 ...

  5. FreeBSD ZFS

    FreeBSD ZFS https://www.cnblogs.com/hadex/p/6068476.html 参考資料 http://docs.oracle.com/cd/E37934_01/ht ...

  6. 一款Redis客户端,可以作为Redis Desktop manager的有效补充或替代

    一.由来 对于redis客户端,我和大多数人一样,都是用Redis Desktop Manager. 但我发现个问题,我的版本是0.9.1.771. 我这个版本有个问题,就是如果value太长的话,不 ...

  7. KuDu论文解读

    kudu是cloudera在2012开始秘密研发的一款介于hdfs和hbase之间的高速分布式存储数据库.兼具了hbase的实时性.hdfs的高吞吐,以及传统数据库的sql支持.作为一款实时.离线之间 ...

  8. redis实战笔记(10)-第10章 扩展Redis

    本章主要内容   扩展读性能 扩展写性能以及内存容量 扩展复杂的查询   随着Redis的使用越来越多, 只使用一台Redis服务器没办法存储所有数据或者没办法处理所有读写请求的问题迟早都会出现, 这 ...

  9. Redis实战:如何构建类微博的亿级社交平台

    微博及 Twitter 这两大社交平台都重度依赖 Redis 来承载海量用户访问.本文介绍如何使用 Redis 来设计一个社交系统,以及如何扩展 Redis 让其能够承载上亿用户的访问规模. 虽然单台 ...

随机推荐

  1. JS BOM知识整理

    BOM部分主要是针对浏览器的内容,其中常用的就是window对象和location, window是全局对象很多关于浏览器的脚本设置都是通过它. location则是与地址栏内容相关,比如想要跳转到某 ...

  2. “耐撕”团队2016.05.11站立会议

    1. 时间 18:15--18:35     共计20分钟 2. 人员 Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:ht ...

  3. 给java应用打包

    C:\dollapp\classes> jar -cvf C:\dollapp\deploy\dollapp.jar *.* 上面的jar命令会把 C:\dollapp\classes 下的 所 ...

  4. PowerDesigner-如何导出建表sql脚本

    1 按照数据库类型,切换数据库. Database-> Change Current DBMS... 2 生成sql脚本 Database -> Database Generation 的 ...

  5. You've got to find what you love

    你必须找到你爱的东西 You've got to find what you love 史蒂夫乔布斯2005年6月在斯坦福大学毕业典礼上的演讲 I am honored to be with you ...

  6. “面向对象"和"面向过程"到底有什么区别?

    链接:http://www.zhihu.com/question/27468564/answer/101951302 当软件还非常简单的时候,我们只需要面向过程编程: 定义函数函数一函数二函数三函数四 ...

  7. Modular Query

    Solution F(L, R) 就是在A[L]在[L+1, R]内从左模到右. 首先应当注意到: 对$a, b > 0$ \[a \mod b \begin{cases} = a, & ...

  8. Android中调用百度地图

    一.调用百度地图 --第一种方法 1.下载百度地图SDK SDK可以拆分下载,需要使用那一部分功能就下载相应包含的SDK,如下图 核心的的jar 和so包,放在工程中的libs目录下 2.申请key ...

  9. 快速反射DataTable

    public class SetterWrapper<TTarget, TValue> { private Action<TTarget, TValue> _setter; p ...

  10. Facebook内部高效工作PPT指南

    Facebook内部高效工作PPT指南 Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去.没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下25张PP ...