tar ,bzip2,gzip等都是常用的压缩工具,但是这些命令都只能工作在一个cpu下,即使服务器是多核cpu也无法同时工作在多个cpu上,然而pbzip2 正好解决了这个问题。
下面简单介绍下这个工具
pbzip2 要求 bzip2 的版本在 1.0.5以上,所以在此之前先检查下机器上的bzip2的版本用 bzip2 -V 即可,如果低于这个版本那么需要先升级bzip2,从官方下载即可
自动安装方法:
yum install bzip2 -y
yum install pbzip2 -y
如果无法自动安装,手动安装方法如下:去官方下载
https://sourceware.org/pub/bzip2/
我下载的是最新版 1.0.8
wget https://sourceware.org/pub/bzip2/bzip2-latest.tar.gz
tar zxf bzip2-latest.tar.gz
cd bzip2-1.0.8
make
make install PREFIX=/usr (由于,原来的bzip就安装在/usr/bin 因此我直接覆盖)
bzip2 -V (如果显示版本为1.0.6表示升级成功)
安装pbzip2,可以rpm安装,这里我选择源码安装
先去下载一个源码包 http://compression.ca/pbzip2/
我下载最新的 tar zxf pbzip2-1.1.13.tar.gz
wget https://launchpad.net/pbzip2/1.1/1.1.13/+download/pbzip2-1.1.13.tar.gz
tar zxf pbzip2-1.1.13.tar.gz
cd pbzip2-1.1.13
make
make install (没有报错的话基本就安装成功)
测试
用cat /proc/cpuinfo 先看下cpu核心个数,我这里是4*6=24个核
生成一个随机的4GB数据
dd if=/dev/urandom of=testdata.dat bs=4M count=1024
然后用pbzip2进行压缩,并用time命令查看时间
time pbzip2 -k testdata.dat
用bzip2进行压缩 用time命令查看时间
time bzip2 testdata.dat
(以下是结果16分5秒)
real 16m5.933s
user 15m54.647s
sys 0m8.081s
查看cpu工作状态(可以看到24个核心都在工作)
对比下时间
同样的文件,bzip2压缩时间是16.5分,pbzip2压缩时间是1.27分,速度有10倍之差
下面介绍下pbzip2的常用方法
压缩
pbzip2 -k file1 file2
解压缩
pbzip2 -dk file1 file2
tar中调用压缩
tar cf myfile.tar.bz2 -I pbzip2 file1 fileN dir_to_compress/
tar中调用解压缩
tar -xf eclipse.tar.bz2 -I pbzip2
压缩单个文件(指定4个线程并行压缩)提示:如果此处采用gzip压缩的话,非常的消耗时间,而采用pbzip2压缩,则比gzip压缩快好多同时压缩效率比gzip还要高。当时此时的pbzip2压缩线程是非常的消耗服务器的CPU的
[root@cacti tmp]# pbzip2 drnew0430.sql -z -p4 -k > drnew0430.sql.bz2
pbzip2: *ERROR: Output file [drnew0430.sql.bz2] already exists! Use -f to overwrite...
压缩提示错误,加上参数-f解决报错:
[root@cacti tmp]# pbzip2 drnew0430.sql -z -p4 -f -k > drnew0430.sql.bz2
[root@cacti tmp]# du -sh 2017-12-21drnew0430.sql.gz drnew0430.sql.bz2 drnew0430.sql
1.1G 2017-12-21drnew0430.sql.gz
778M drnew0430.sql.bz2
5.0G drnew0430.sql
验证pbzip2比gzip压缩快好多同时压缩效率比gzip还要高
解压文件(指定3个线程)
pbzip2 -d -p3 -k drnew0430.sql.bz2
压缩目录(指定3个线程)
tar -c test_dir/* | pbzip2 -c -p3 -f -k > test_dir.tar.bz2
解压目录(指定3个线程)
pbzip2 -d -p3 -k test_dir.tar.bz2
tar -xf test_dir.tar
或者
pbzip2 -d -p3 -k test_dir.tar.bz2 && tar -xf test_dir.tar
pbzip2限制
由于pbzip2只能压缩文件,不能对目录进行压缩,所以如果想使用pbzip2压缩目录,则需要借助tar工具。
常用选项和命令
-d 用于解压缩
-k 用于保留源文件
-I是–use-compress-prog(指定调用压缩程序)简略写法
b#, 块大小,#表示数字,单位是100k(默认900k)
-c, 输出到stdout
-f, 覆盖已存在的输出文件
-h, 输出帮助
-l, 最大可用处理器数量
-m#, 最大可用内存,单位MB,默认100MB
-p#, 处理器数量,默认自动检测,检测失败设置为2
-q, 安静模式,不输出处理信息
-r, 读取整个输入文件到内存,在各处理器间分开处理
-S#, 子线程栈大小
-t, 测试压缩文件的完整性
-v, 输出详细信息
-V, 输出pbzip2版本信息
-z, 压缩(默认启用)
-1, 设置BWT预处理块大小,单位100k,1压缩速度最快,但是压缩率最低。默认900k
–ignore-trailing-garbage=#, 是否忽略文件末尾对齐数据块(1忽略,0禁止)
版权属于: 三三世界-百宝箱
本文链接: http://33f.net/setup/centos_pbzip2.html
本文最后更新于2022年02月18日 ,已超过1078天没有更新,若内容或图片失效,请留言反馈。
本文允许转载,但请在转载时请以超链接或其它形式标明文章出处
@Doug Shume it's ok for me , you can post here.
Saved as a favorite, I like your website!
If some one wishes to be updated with hottest technologies after that he must be visit this site and be up to date daily.
Heello would you mind sharing which blog platform you're using? I'm planning to start my own blog in the near future but I'm having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then moost blogs and I'm looking for something completely unique. P.S Apologies forr being off-topic butt I had to ask!
Thanks to my father who shared with me regarding this webpage, this website is genuinely amazing.
Hi, I have an overflow of customers that I'd like to send to you but I want to make sure you can handle more leads, let me know if you'd like me to send you more info.
zh.us.to 有效
kms.03k.org 有效
kms.chinancce.com
kms.shuax.com 有效
kms.dwhd.org 有效
kms.luody.info 有效
kms.digiboy.ir 有效
kms.lotro.cc 有效
www.zgbs.cc 有效
cy2617.jios.org 有效
@ 权限问题,试试sudo 再加命令。
你好提示Permission denied 怎么办啊