bzip2が圧縮率がいいので汎用的に使っているが、最近あまりにも遅く(5時間半ほどかかる。)ので調査。
(DBのダンプファイルで)
並列処理をしていないらしい。
と言うわけで調べたところ
-> Paralle Bzip2
SMPの効果を活かせるらしい。しかもリニアに性能向上。(公式サイトによれば97%程度
と肉薄している。)
インストールはYUMで。
# yum info pbzip2
Repository base is listed more than once in the configuration
Repository addons is listed more than once in the configuration
Available Packages
Name : pbzip2
Arch : x86_64
Version : 1.0.5
Release : 1.el5.rf
Size : 33 k
Repo : dag
Summary : Parallel implementation of bzip2
URL : http://compression.ca/pbzip2/
License : BSD
Description: PBZIP2 is a parallel implementation of the bzip2 block- sorting file
: compressor that uses pthreads and achieves near-linear speedup on SMP
: machines.
#yum install pbzip2
利用方法
/usr/bin/pbzip2
-p12 (並列度の指定。自動検知で入るが、すべてを持っていかれるのも微妙なので指定。この場合は12)
このファイルをテスト圧縮
10930222613 10月 31 02:14 20111031-02-dump.sql
timeにて測定
# time pbzip2 -p12 --best 20111031-02-dump.sql
real 7m24.679s
user 88m22.910s
sys 0m10.273s
ちなみにシングルタスク版
# time bzip2 --best 20111031-02-dump.sql
real 61m27.443s
user 61m19.261s
sys 0m4.825s
これは大きいな。
圧縮結果
# ls -la
1056985855 10月 31 02:14 20111031-02-dump.sql.bz2
ちなみに、圧縮効果、以下に記載。
http://compression.ca/pbzip2/benchmark.html