如何使用pbzip2执行更快的数据压缩

使用PBZIP2解压

# tar xf FOOBAR1.tar.bz2 --use-compress-prog=pbzip2
OR
# pbzip2 -dc FOOBAR1.tar.bz2 | tar x

常规tar和bzip2压缩

测试使用tar压缩Foobar目录(大概250兆)所需时间:

# time tar cjf FOOBAR1.tar.bz2 FOOBAR/
real    0m20.030s
user    0m19.828s
sys     0m0.304s

从上面的时间输出,我们可以看到它需要大约20秒钟来创建以下压缩文件:

# ls -lh FOOBAR1.tar.bz2 
-rw-r--r-- 1 root root 54M Mar 10 20:25 FOOBAR1.tar.bz2

使用bpzip2更快地压缩

同样,我们使用pbzip2来进行压缩:

# time tar -c FOOBAR | pbzip2 -c > FOOBAR2.tar.bz2
real    0m4.777s
user    0m35.588s
sys     0m1.060s

或者,使用下面的命令:

# time tar cf FOOBAR3.tar.bz2 --use-compress-prog=pbzip2 FOOBAR
real    0m4.764s
user    0m35.508s
sys     0m1.136s

储备资源

pbzip2允许用户选择用于压缩的CPU数量和内存数量。以下示例仅使用单个CPU执行请求的压缩:

# time tar -c FOOBAR | pbzip2 -c -p1 > FOOBAR4.tar.bz2
real    0m20.348s
user    0m19.972s
sys     0m0.648s

为了指定使用的内存,请使用“-m”选项。
默认情况下,pbzip2使用100MB。

下面的示例将使用1个CPU和10MB 内存执行压缩:

# time tar -c FOOBAR | pbzip2 -c -p1 -m10 > FOOBAR5.tar.bz2
real    0m20.362s
user    0m19.932s
sys     0m0.704s

压缩等级

压缩范围为1到9,其中默认为9,也是最佳压缩比。

要将压缩率改变为1,使用-1选项:

time tar -c FOOBAR | pbzip2 -c -1 > FOOBAR6.tar.bz2
real    0m3.786s
user    0m28.612s
sys     0m0.364s
日期:2020-07-07 20:56:28 来源:oir作者:oir