一、压缩
(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. 每天一个linux命令(30):cal 命令

    cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历.“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”. 1.命令格式: cal  ...

  2. 在Oracle里,表的别名不能用as,列的别名可以用as

    列的别名也可以不用as,如:select t.a xxx from table t 在Oracle数据库中,数据表别名是不能加as的,例如: select a.appname from appinfo ...

  3. Java编程思想学习(十) 正则表达式

    正则表达式是一种强大的文本处理工具,使用正则表达式我们可以以编程的方法,构造复杂的文本模式,并且对输入的字符串进行搜索.在我看来,所谓正则表达式就是我们自己定义一些规则,然后就可以验证输入的字符串是不 ...

  4. 洛谷 P1238 走迷宫

    因为小处疏漏,多花了半小时的水题 题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束 ...

  5. 转-Android中自动连接到指定SSID的Wi-Fi

    最近在做一个项目,其中涉及到一块“自动连接已存在的wifi热点”的功能,在网上查阅了大量资料,五花八门,但其中一些说的很简单,即不能实现傻瓜式的拿来就用,有些说的很详细,但其中不乏些许错误造成功能无法 ...

  6. ubuntu 12.04安装telnet和ssh服务

    ubuntu安装telnet服务 1. sudo apt-get install xinetd telnetd sudo vi /etc/inetd.conf并加入以下一行,假如没有发现这个文件,自己 ...

  7. 初识A*算法

    写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里抛砖引玉,希望大家都来热心的参与. 还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人 ...

  8. centOS下yum安装配置samba

     centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...

  9. shell中的循环

    shell中的循环 for循环 类似于C语言的步长控制 例如: ;i<=;i++)); ); done 将1到10,依次乘以4,然后打印出来. 这里顺便提一下,shell里面表达式的计算,可以有 ...

  10. WINDOWS渗透与提权总结(2)

    vbs 下载者: 01 1: 02   03 echo Set sGet = createObject("ADODB.Stream") >>c:\windows\cft ...