Linux 加快解压速度,使用 pigz 并行加速 Linux 压缩与解压
Posted weixin_39890543
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 加快解压速度,使用 pigz 并行加速 Linux 压缩与解压相关的知识,希望对你有一定的参考价值。
Linux下压缩或解压一个文件,通常使用tar.gz格式,对应的工具为 tar(打包工具)以及由-z参数指定的gzip(压缩解压工具)。
而默认的gzip工具是单线程工作的,在处理大文件时非常慢。
可以通过-I参数指定自定义的并行(多进程、多核)压缩解压工具 pigz 来进行加速。
pigz的官方自我介绍:
A parallel implementation of gzip for modern multi-processor, multi-core machines
使用方法安装 pigz 工具包(yum 或 apt)
将常规参数中的-z去掉,换上-I
1
2
3
4# 压缩
tar -I pigz -cvf package.tar.gz /path/to/file_or_folder
# 解压 (中括号内为可选,用于指定解压缩目标地址)
tar -I pigz -xvf package.tar.gz [-C /path/to/extracted]
注意事项:
常规的tar方法中czvf或xzvf中前边的-可省了,且fv或vf顺序可调整
此处因为要加入-I参数,不能省略-,且vf参数只能是f在后(f紧挨指定的压缩文件路径)
原理解析
tar 通常的用法为:
1
2
3
4# 压缩
tar -czvf package.tar.gz /path/to/file_or_folder
# 解压 (中括号内为可选,用于指定解压缩目标地址)
tar -xzvf package.tar.gz [-C /path/to/extracted]
我们来看一下tar --help返回的帮助信息中这几个参数的含义:
-c, --create create a new archive
-x, --extract, --get extract files from an archive
-z, --gzip, --gunzip, --ungzip filter the archive through gzip
-f, --file=ARCHIVE use archive file or device ARCHIVE
-C, --directory=DIR change to directory DIR
-v, --verbose verbosely list files processed
以及另外一个我们今天使用的参数:
-I, --use-compress-program=PROG filter through PROG (must accept -d)
通过以上信息,我们可以知道:
-z 的意思是使用 gzip 进行压缩或解压
-I 可以自定义你使用的压缩解压工具
相关信息
网上也有其他一些方案,例如管道组合之类的,不太好记。这里推荐-I参数的方法。
其他用法及对应的性能测试的效果,参考:
以上是关于Linux 加快解压速度,使用 pigz 并行加速 Linux 压缩与解压的主要内容,如果未能解决你的问题,请参考以下文章
快如闪电:Linux多线程压缩软件pigz和压缩神器zstd