Linux 并行压缩程序 pbzip2 小记
时间:2015-05-18 01:01 来源:linux.it.net.cn 作者:IT
-
pbzip2和bzip2的压缩对比
-
pbzip2常用命令
-
pbzip2实际执行截图
-
pbzip2选项详解
Linux最常用的压缩程序是bzip2,但是bizp2可以算是上古程序了,不支持多核。现在PC一般都是双核四核了。建议使用pbzip2替代bzip2,以下实验数据为证。
压缩4G随机生成数据,耗时对比:
查看实验环境,生成4G随机数据
使用pbzip2压缩
使用bzip2压缩
-
pbzip2 压缩耗时 2m37.668s = 157.668s
-
bzip2 压缩耗时 19m43.013s = 1183.013s
这还要说什么?在16核的情况下压缩同一份4G随机数据,竟然时间相差7倍多。当然使用pbzip2啦!
下面我们来介绍一下pbzip2的常用命令:
常用的选项有
-
-d 用于解压缩
-
-k 用于保留源文件
压缩:
# pbzip2 -k file1 file2 fileN
解压缩:
# pbzip2 -dk file1 file2 fileN
在tar中调用压缩:
# tar cf myfile.tar.bz2 -I pbzip2 file1 fileN dir_to_compress/
在tar中调用解压缩:
# tar -xf eclipse.tar.bz2 -I pbzip2
Note:
-
Linux中所有东西都是文件,所以以上文件也可以是目录。
-
默认压缩后,是删除源文件的,如果要保留源文件使用-k选项
-
-I(大写的”i”)是--use-compress-prog(指定调用压缩程序)简略写法,但是我也没看出来为什么用I ..
-
解压缩时,不能写成tar -xf -I pbzip2 eclipse.tar.bz2,这样会把-I当做文件名。-f后面一定要跟文件名。
下面实际执行一次:
准备数据:用百度首页和腾讯首页作为数据源
压缩数据:
解压缩:
使用tar打包压缩:
使用tar批量解压:
pbzip2选项详解:
-
-b#, 块大小,#表示数字,单位是100k(默认900k)
-
-c, 输出到stdout
-
-d, 解压
-
-f, 覆盖已存在的输出文件
-
-h, 输出帮助
-
-k, 保留输入文件
-
-l, 最大可用处理器数量
-
-m#, 最大可用内存,单位MB,默认100MB
-
-p#, 处理器数量,默认自动检测,检测失败设置为2
-
-q, 安静模式,不输出处理信息
-
-r, 读取整个输入文件到内存,在各处理器间分开处理
-
-S#, 子线程栈大小
-
-t, 测试压缩文件的完整性
-
-v, 输出详细信息
-
-V, 输出pbzip2版本信息
-
-z, 压缩(默认启用)
-
-1, 设置BWT预处理块大小,单位100k,1压缩速度最快,但是压缩率最低。默认900k
-
--ignore-trailing-garbage=#, 是否忽略文件末尾对齐数据块(1忽略,0禁止)
参考:
-
Parallel BZIP2 (PBZIP2)
-
/dev/random vs /dev/urandom的区别
-
gzip: stdin: decompression OK, trailing garbage ignored
(责任编辑:IT)
Linux最常用的压缩程序是bzip2,但是bizp2可以算是上古程序了,不支持多核。现在PC一般都是双核四核了。建议使用pbzip2替代bzip2,以下实验数据为证。 压缩4G随机生成数据,耗时对比:
查看实验环境,生成4G随机数据
这还要说什么?在16核的情况下压缩同一份4G随机数据,竟然时间相差7倍多。当然使用pbzip2啦! 下面我们来介绍一下pbzip2的常用命令: 常用的选项有
压缩: # pbzip2 -k file1 file2 fileN 解压缩: # pbzip2 -dk file1 file2 fileN 在tar中调用压缩: # tar cf myfile.tar.bz2 -I pbzip2 file1 fileN dir_to_compress/ 在tar中调用解压缩: # tar -xf eclipse.tar.bz2 -I pbzip2 Note:
下面实际执行一次: 准备数据:用百度首页和腾讯首页作为数据源
压缩数据:
解压缩:
使用tar打包压缩:
使用tar批量解压:
pbzip2选项详解:
参考:
|