2014年06月08日(日) - 18:21 | カテゴリ:
Linux
2022年版として再計測してみました。
………
先日、自鯖のログ圧縮を行おうとキーボードを叩いていたのだが、
その時に『普通ならgzipだろうけどxzとか他はどうなんだろう…?』
と思ったので、実際にファイルを圧縮しつつ実行速度と圧縮率を測定してみた。
Linux(CentOS)のデフォルトlogrotateでcompressオプションを指定した場合はgzip圧縮になる。
オプションとかコマンドを再指定する事で、他の圧縮方法に切り替える事も可能だけど、
普通はそんな面倒な事やらないし、
『ログの圧縮と言ったらgzipだべ』という人が大半だと思われる。
そんな中での今回の検証だが、果たしてどの圧縮方法が鯖に優しいのだろうか(`・ω・´)
………
● 計測方法
- 検証は仮想環境上に”CentOS x86_64″を構築し実施。
- テキスト(ログ)504MBとバイナリ(CentOSのLiveCD)649MBに対して
各圧縮コマンド毎に3回ずつ圧縮処理を行い、
その中の最速処理時間の値を圧縮方法に対応する処理時間とする
- 圧縮率指定の出来るコマンドでは、[速度重視 / 指定無し / 最高圧縮率]の3種類の測定を行う
ただし、アーカイブ化オプション(=圧縮しない)の場合は省略する
- 処理時間の測定にはtimeコマンドを使用し、
ユーザタイムでの処理時間をファイルの圧縮にかかった時間とする
- 圧縮率の計算は“[圧縮後の容量] / [圧縮前の容量]”とする
- 各コマンドのバージョンは以下の物を使用
コマンド |
バージョン |
gzip |
1.3.12 |
bzip2 |
1.0.5 |
xz |
4.999.9beta |
zip |
3.0 |
7zip(7za) |
9.20.1 |
lzh(lha) |
1.14i |
という事で、実際にコマンドを叩きまくって計測をしてみた。
◆ テキスト(ログ)ファイル [元ファイルサイズ:528394240(504M)Byte]
● 処理速度(単位:秒)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
gzip |
5.06 |
11.15 |
16.98 |
bzip2 |
96.78 |
171.10 |
170.94 |
xz |
19.02 |
303.38 |
422.88 |
zip |
5.01 |
11.27 |
17.35 |
7zip |
20.37 |
207.11 |
454.99 |
lzh |
NoData |
17.95 |
NoData |
● 圧縮率(圧縮後容量:Byte | 圧縮率:%)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
gzip |
69740928(66.51M) |
13.199 |
56342711(53.73M) |
10.663 |
53053857(50.60M) |
10.041 |
bzip2 |
47765217(45.55M) |
9.040 |
39473917(37.65M) |
7.471 |
39473917(37.65M) |
7.471 |
xz |
52814696(50.37M) |
9.995 |
39297448(37.48M) |
7.437 |
34627800(33.02M) |
6.553 |
zip |
69741068(66.51M) |
13.199 |
56342850(53.73M) |
10.663 |
53053996(50.60M) |
10.040 |
7zip |
49351228(47.06M) |
9.340 |
45921512(43.79M) |
8.691 |
34625193(33.02M) |
6.553 |
lzh |
NoData |
– |
56100468(53.50M) |
11.185 |
NoData |
– |
………
◆ バイナリ(LiveCD)ファイル [元ファイルサイズ:680525824(649M)Byte]
● 処理速度(単位:秒)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
gzip |
27.26 |
29.38 |
29.57 |
bzip2 |
160.31 |
203.46 |
199.18 |
xz |
118.53 |
289.40 |
378.48 |
zip |
24.43 |
26.00 |
25.84 |
7zip |
137.07 |
313.51 |
571.32 |
lzh |
NoData |
56.43 |
NoData |
● 圧縮率(圧縮後容量:Byte | 圧縮率:%)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
gzip |
663346521(632.62M) |
97.476 |
662932387(632.22M) |
97.415 |
662931421(632.22M) |
97.416 |
bzip2 |
671338147(640.24M) |
98.650 |
668833540(637.85M) |
98.282 |
668833540(637.85M) |
98.282 |
xz |
662375208(631.69M) |
97.333 |
657594464(627.13M) |
96.630 |
657235092(626.79M) |
96.577 |
zip |
663346660(632.62M) |
97.476 |
662932526(623.22M) |
97.415 |
662931560(632.22M) |
97.415 |
7zip |
666778042(635.89M) |
97.980 |
661232857(630.60M) |
97.165 |
661003682(630.38M) |
97.131 |
lzh |
NoData |
– |
663947004(633.19M) |
97.564 |
NoData |
– |
計測の生データはこちら
テキストファイルでは圧縮速度最重視だとgzip、圧縮率最重視だとxzという結果になった。
しかし、圧縮後容量を見るとgzipとxzだと結構差のある結果に。
ログとかだと年単位で取得とかになるので、たかが数メガでも1年分(x365)するととんでもない事に。
そういう実用面を考えると、bzip2で最高ブロック数指定がバランスを取れているのかもしれない。
意外だったのが、テキストで最高圧縮率指定だと7zipが一番縮んだ事。
実行前は『xzが一番縮むだろうな~』と予想していただけに驚きだった。
その分、処理時間も一番長かったので実用面では工夫しないといけないだろうが(´・ω・`)
バイナリファイルの圧縮率ではxzの一人勝ちだった。
しかし、処理速度観点で見るとgzipとzipの一騎打ちに。
昔から使われているgzipとzipだけあって、様々なシーンでの高速処理が目に見えた結果だった。
圧縮処理については賛否両論あるし、それぞれのシーンによって使い分けるのが一番良いのだろうが、
実用シーンではbzip2がオールマイティに使えると感じた結果になりましたとさ(`・ω・´)
…と言いつつ、自鯖のlogrotateは未だにgzipなわけですが
« 続きを隠す
2014年06月07日(土) - 18:46 | カテゴリ:
Linux
最近OpenSSLの重大バグ発見率上がっているなぁ~(´・ω・`)
………
OpenSSLのバグと言えば、Heartbleed発見で世界中が震撼したのが新しい記憶。
HBが見つかってから期間があまり経っていないのに、またもやデカイバグが発見されたとの事。
どうやら、SSL/TLS通信経路上での脆弱性らしい。
で、攻撃(改ざん等)を防ぐ為には"クライアント or サーバのどちらかで、脆弱性修正されたOpenSSLへ更新する"事が必須と。
脆弱性修正の施されたOpenSSLは、
-
OpenSSL1.0.1系統 → OpenSSL1.0.1h
-
OpenSSL1.0.0系統 → OpenSSL1.0.0m
-
OpenSSL0.9.8系統 → OpenSSL0.9.8za
なので、対応したバージョン(最新版)へ更新する必要がある。
てか、0.9.8系統のバージョン末尾がアルファベットの"z"を超えちゃったよw
HBの時程、世間では騒がれていないけど
世のサーバ管理者は着実に対応していく必要ある問題だわね(´・ω・`)
……という事で、自分の休日その1はOpenSSLのバージョンアップで無くなったのでした(´;ω;`)
2014年06月01日(日) - 12:26 | カテゴリ:
雑談
昨日昼頃―――
( ´_ゝ`)『休日だけどやる事ないな~ 昨夜買ったエ□ゲに興じるか~』
(゚∀゚)『お! 秋葉原で何やらイベントやっているのか!』
(`・ω・´)『エ○ゲはいつでも出来るし、カメラ片手にアキバ行くか』
という事で、行くつもり無かったのだがメガホビ2014に行ってきた。