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

なんか一日分違うログが混じっていますね…。