HOME / 日記 / pigz(マルチスレッドで動作するマルチコアに最適なgzip互換ソフトウェア)を試す

Date: 2009/09/07 |  このエントリーをはてなブックマークに追加  |  Tags: OpenSolaris, gzip, マルチコア, パラレル, マルチスレッド, pigz, pgzip

pigz(マルチスレッドで動作するマルチコアに最適なgzip互換ソフトウェア)を試す

gzipをマルチコアのマシンで動かしても、CPU1つしかつかってくれないわけですが、最近はノートパソコンでもマルチコアで、CPUパワーが余っているわけです。

巨大なファイル(1GBとか)をgzipで固めると結構遅いので、マルチスレッドに対応したpigzを試してみました。

OpenSolarisでのインストールはこんなかんじ。

jucrのpendingレポジトリの追加

pfexec pkg set-publisher -O http://jucr.opensolaris.org/pending juicer

インストール

pfexec pkg install -v pigz

juicerのレポジトリは定期的に落ちるので、以後pkgコマンドでエラーが出るのが嫌な場合はunset-publisherをしておきましょう。

厳密じゃないんだけどtimeコマンドで比較。

gzipの場合

time pfexec zfs send dpool/rpool/zones/m-p2s-20090410/ROOT/zbe-8@zfs-async:bp-1  | gzip -9c > /zones/work/p2vi-snv101-20090410.zfs.gz

結果

0.00s user 3.61s system 0% cpu 13:01.85 total

13分2秒=782秒程度。

pigzの場合

time pfexec zfs send dpool/rpool/zones/m-p2s-20090410/ROOT/zbe-8@zfs-async:bp-1  | pigz -9c > /zones/work/p2vi-snv101-20090410.zfs.gz 

結果

0.00s user 4.08s system 0% cpu 6:58.43 total

6分58秒=418秒程度。

比率

1.87倍程度でしょうか。

まあ、pigz、使ってみようってことで(笑)

補足

デフォルトではコア数の分、スレッドを切るようで、prstat -mL 1で見てみると、CPUがまだまだ空いている。

1つのスレッドが1つのCPUを100%使い切れるわけではないので、その関係もあるのでしょう。

ということで、pig -p4あたりにしてみたところ、prstat -mL 1でみると4匹のpigzが立ち上がっておりました。Dual Coreの私のノートでは、このぐらいの方が、速度は速そうです。他のプロセスに影響を与えるわけですが・・・(笑



日記

Recent Updates