三三世界-百宝箱

文章 分类 标签
130 9 247

公告

暂无站点公告

centos 下使用快速压缩工具 pbzip2

三三 2022-02-18 1966 0条评论 服务器配置Linux使用 centos压缩pbzip2

首页 / 正文

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禁止)

评论(0)

当前没有评论,还不快来留下第一个脚印吧


Copyright 2021 三三世界-百宝箱. All Rights Reserved.

最新评论

  • 三三

    @Doug Shume it's ok for me , you can post here.

  • refugiaguenther

    Saved as a favorite, I like your website!

  • josefa

    If some one wishes to be updated with hottest technologies after that he must be visit this site and be up to date daily.

  • Penzu

    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!

  • Yupoo Fendi

    Thanks to my father who shared with me regarding this webpage, this website is genuinely amazing.

  • Doug Shume

    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.

  • SuperWind

    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 怎么办啊

日历

2024年05月

   1234
567891011
12131415161718
19202122232425
262728293031 

文章目录

上一张 下一张