こまめに怒られた。¶
ヨメさんが今日から入院して、寂しいのかこまめがやたら甘えてくるのですが、1時過ぎたら、こまめがベッドからニャアニャア言いながらやって来ました。ヨメさんの代わりに、「早く寝ろ、こんにゃろ」とでも言っているみたい。ハイハイ、もう寝ますよ。
Apacheのログをgzip圧縮からxz圧縮への変更を検討。¶
結論、無い。
画像圧縮はとても強力でした が、Apacheのアクセスログの文字列圧縮は、圧縮率の高さに比べると圧縮に要する時間が長すぎました。伸張に要する時間はgzipと大差ないので、Webサーバ側のCPU負荷を無視して、N/W帯域、ディスク容量を節約するなら使えますが、サーバ間やDC間のN/W帯域節約にも、アクセスログ解析用のシステムのディスク容量節約にも大きな効果は得られないので選択肢としてありませんね。
試しにあるサービスの一日分のログでやった例は以下の通りです。 1
非圧縮時のファイルサイズ¶
total 5900156
-rw-r--r-- 1 user user 319363125 Feb 24 15:36 16_access_log.20120223
-rw-r--r-- 1 user user 318459629 Feb 24 15:36 15_access_log.20120223
-rw-r--r-- 1 user user 317564749 Feb 24 15:36 14_access_log.20120223
-rw-r--r-- 1 user user 317429105 Feb 24 15:36 13_access_log.20120223
-rw-r--r-- 1 user user 317269069 Feb 24 15:36 12_access_log.20120223
-rw-r--r-- 1 user user 318413201 Feb 24 15:36 11_access_log.20120223
-rw-r--r-- 1 user user 320070237 Feb 24 15:36 10_access_log.20120223
-rw-r--r-- 1 user user 303356624 Feb 24 15:36 10_access_log.20120222
-rw-r--r-- 1 user user 319528574 Feb 24 15:36 9_access_log.20120223
-rw-r--r-- 1 user user 318281124 Feb 24 15:36 8_access_log.20120223
-rw-r--r-- 1 user user 316764620 Feb 24 15:36 7_access_log.20120223
-rw-r--r-- 1 user user 318641631 Feb 24 15:36 6_access_log.20120223
-rw-r--r-- 1 user user 319956606 Feb 24 15:36 5_access_log.20120223
-rw-r--r-- 1 user user 317251065 Feb 24 15:36 4_access_log.20120223
-rw-r--r-- 1 user user 318412792 Feb 24 15:36 3_access_log.20120223
-rw-r--r-- 1 user user 320224674 Feb 24 15:36 2_access_log.20120223
-rw-r--r-- 1 user user 319814095 Feb 24 15:36 1_access_log.20120223
-rw-r--r-- 1 user user 317625588 Feb 24 15:36 18_access_log.20120223
-rw-r--r-- 1 user user 317291138 Feb 24 15:36 17_access_log.20120223
gzipでの圧縮後のファイルサイズ。¶
圧縮後は約17%です。
total 1047660
-rw-r--r-- 1 user user 53619534 Feb 24 15:36 10_access_log.20120222.gz
-rw-r--r-- 1 user user 56839677 Feb 24 15:36 10_access_log.20120223.gz
-rw-r--r-- 1 user user 56569549 Feb 24 15:36 11_access_log.20120223.gz
-rw-r--r-- 1 user user 56362050 Feb 24 15:36 12_access_log.20120223.gz
-rw-r--r-- 1 user user 56368136 Feb 24 15:36 13_access_log.20120223.gz
-rw-r--r-- 1 user user 56375659 Feb 24 15:36 14_access_log.20120223.gz
-rw-r--r-- 1 user user 56550279 Feb 24 15:36 15_access_log.20120223.gz
-rw-r--r-- 1 user user 56716954 Feb 24 15:36 16_access_log.20120223.gz
-rw-r--r-- 1 user user 56359257 Feb 24 15:36 17_access_log.20120223.gz
-rw-r--r-- 1 user user 56443638 Feb 24 15:36 18_access_log.20120223.gz
-rw-r--r-- 1 user user 56763898 Feb 24 15:36 1_access_log.20120223.gz
-rw-r--r-- 1 user user 56894590 Feb 24 15:36 2_access_log.20120223.gz
-rw-r--r-- 1 user user 56521784 Feb 24 15:36 3_access_log.20120223.gz
-rw-r--r-- 1 user user 56326266 Feb 24 15:36 4_access_log.20120223.gz
-rw-r--r-- 1 user user 56839632 Feb 24 15:36 5_access_log.20120223.gz
-rw-r--r-- 1 user user 56573367 Feb 24 15:36 6_access_log.20120223.gz
-rw-r--r-- 1 user user 56232865 Feb 24 15:36 7_access_log.20120223.gz
-rw-r--r-- 1 user user 56505719 Feb 24 15:36 8_access_log.20120223.gz
-rw-r--r-- 1 user user 56745093 Feb 24 15:36 9_access_log.20120223.gz
gzip圧縮の所要時間。¶
$ time gzip *
real 2m41.050s
user 2m36.786s
sys 0m4.231s
gzip伸張の所要時間。¶
gzip -d *
real 1m4.104s
user 0m44.670s
sys 0m8.709s
一応、2回目の伸長に要した時間。
$ time gzip -d *
real 0m44.436s
user 0m35.568s
sys 0m6.862s
xz圧縮後のファイルサイズ。¶
約11%です。
total 629888
-rw-r--r-- 1 user user 34091368 Feb 24 15:36 16_access_log.20120223.xz
-rw-r--r-- 1 user user 33995004 Feb 24 15:36 15_access_log.20120223.xz
-rw-r--r-- 1 user user 33902124 Feb 24 15:36 14_access_log.20120223.xz
-rw-r--r-- 1 user user 33917212 Feb 24 15:36 13_access_log.20120223.xz
-rw-r--r-- 1 user user 33890092 Feb 24 15:36 12_access_log.20120223.xz
-rw-r--r-- 1 user user 34008540 Feb 24 15:36 11_access_log.20120223.xz
-rw-r--r-- 1 user user 34166088 Feb 24 15:36 10_access_log.20120223.xz
-rw-r--r-- 1 user user 32111688 Feb 24 15:36 10_access_log.20120222.xz
-rw-r--r-- 1 user user 34086496 Feb 24 15:36 9_access_log.20120223.xz
-rw-r--r-- 1 user user 33984752 Feb 24 15:36 8_access_log.20120223.xz
-rw-r--r-- 1 user user 33835084 Feb 24 15:36 7_access_log.20120223.xz
-rw-r--r-- 1 user user 34021324 Feb 24 15:36 6_access_log.20120223.xz
-rw-r--r-- 1 user user 34179500 Feb 24 15:36 5_access_log.20120223.xz
-rw-r--r-- 1 user user 33884716 Feb 24 15:36 4_access_log.20120223.xz
-rw-r--r-- 1 user user 33978080 Feb 24 15:36 3_access_log.20120223.xz
-rw-r--r-- 1 user user 34184592 Feb 24 15:36 2_access_log.20120223.xz
-rw-r--r-- 1 user user 34110700 Feb 24 15:36 1_access_log.20120223.xz
-rw-r--r-- 1 user user 33949656 Feb 24 15:36 18_access_log.20120223.xz
-rw-r--r-- 1 user user 33904016 Feb 24 15:36 17_access_log.20120223.xz
xz圧縮の所要時間。¶
$ time xz *
real 53m25.665s
user 53m19.005s
sys 0m6.160s
一応、2回実行してみましたが、変わらず。
$ time xz *
real 53m26.128s
user 53m19.134s
sys 0m6.494s
xz伸張の所要時間。¶
$ time xz -d *
real 1m6.302s
user 0m58.743s
sys 0m7.551s
- 1
なんか一日分違うログが混じっていますね…。
p7zip-full, pbzip2も比べてみた。¶
p7zip-full(7zコマンド)のオプションは、”-t7z -m0=lzma -mx=9”を指定し、pbzip2は-9オプションを使用しました。
p7zip-full 圧縮後のサイズ比19.0%¶
# p7zip compress ##
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Scanning
Updating archive hoge.pdf.7z
Compressing hoge.pdf
Everything is Ok
real 0m1.169s
user 0m1.688s
sys 0m0.272s
-rw-r--r-- 1 user user 2328107 2月 23 19:46 hoge.pdf.7z
## p7zip uncompress ##
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: hoge.pdf.7z
Extracting hoge.pdf
Everything is Ok
Size: 12226478
Compressed: 2328107
real 0m0.201s
user 0m0.216s
sys 0m0.028s
pbzip2 圧縮後のサイズ比35.6%¶
## pbzip2 compress ##
real 0m2.844s
user 0m11.009s
sys 0m0.044s
-rwxr-x--- 1 user user 4355974 2月 23 11:02 hoge.pdf.bz2
## pbzip2 uncompress ##
real 0m0.306s
user 0m1.040s
sys 0m0.036s
p7zip-fullはxzと、pbzip2はbzip2と大体圧縮率が同じくらいで、処理時間はいずれも比較対象よりも速い、という結果になりました。
xzスゴイ。¶
画像を多用しているPDFでの圧縮率と実行時間を、gzip, bzip2, xzをそれぞれ-9オプションで比較してみました。結論、xzすごいね。テキストファイルなどでの実行結果と比べてみるとまたちゃうんでしょうね。
gzip 圧縮後のサイズ比92.5%¶
-rwxr-x--- 1 user user 12226478 2月 22 13:38 hoge.pdf
## gzip compress ##
real 0m0.556s
user 0m0.548s
sys 0m0.004s
-rwxr-x--- 1 user user 11307285 2月 22 13:38 hoge.pdf.gz
## gzip uncompress ##
real 0m0.114s
user 0m0.096s
sys 0m0.016s
bzip2 圧縮後のサイズ比35.5%¶
## bzip2 compress ##
real 0m6.313s
user 0m6.308s
sys 0m0.000s
-rwxr-x--- 1 user user 4344225 2月 22 13:38 hoge.pdf.bz2
## bzip2 uncompress ##
real 0m0.646s
user 0m0.624s
sys 0m0.020s
xz 圧縮後のサイズ比19.0%¶
## xz compress##
real 0m2.355s
user 0m2.264s
sys 0m0.088s
-rwxr-x--- 1 user user 2319720 2月 22 13:38 hoge.pdf.xz
## xz uncompress##
real 0m0.149s
user 0m0.112s
sys 0m0.036s
ところで圧縮率って?¶
圧縮率という場合、圧縮後のファイルサイズ÷元のファイルサイズ、なのか、圧縮によって縮小されたファイルサイズ÷元のファイルサイズ、なのか。「圧縮」を形容詞と捉えて、圧縮(された(後の))率と考えれば前者ですが、動詞と捉えて圧縮(する)率と考えれば後者ですね。圧縮率が高いという言い方をしたり聞いたりするから、やはり後者なんですかね。その方が直感的か。