読者です 読者をやめる 読者になる 読者になる

harry’s memorandum

おれおれメモ

logrotateの圧縮コマンドをpbzip2に変更してみることにした

HDDは安くなってログのサイズが肥大してもそれほど問題はなくなっているけど、やっぱりログでディスクを消費するのは精神衛生上よろしくない。だったらlogrotateでgzipから圧縮率の高いbzip2に変更したらいいんじゃね?と今更ながら気がついたので変更してみた。自宅サーバは ubuntu10.10 beta版です。

pbzip2をインストール。

今時CPUは4coreとか当たり前なのでマルチスレッド対応版bzip2をインストール。

 $ sudo apt-get install pbzip2

logrotate.confを修正

 $sudo cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
rotate 52
create
# uncomment this if you want your log files compressed
compress
compresscmd /usr/bin/pbzip2
compressoptions  --best
compressext .bz2

include /etc/logrotate.d

/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

logrotateの動きをチェック

 sudo logrotate -d  /etc/logrotate.conf

あとは寝て待つだけ。

補足

寝て待つのも趣が足りないので、bzip2とpbzi2の簡易ベンチマークをやってみた。UbuntuのCPUは Atom330 1.6GHz 2core x 2threadです。

  • 圧縮しにくい10MBのファイルを作成
$ dd if=/dev/urandom bs=1M count=10 of=./test.img
$ \
> for file in bzip2-best.img bzip2-fast.img pbzip2-best.img pbzip2-fast.img
> do
> cp -p test.img  $file && echo $file
> done
  • ベンチマーク結果。

pbzip2かなりいい感じです。

$ time bzip2 --fast bzip2-fast.img
real    0m13.989s
user    0m13.909s
sys     0m0.076s

$ time pbzip2 --fast pbzip2-fast.img
real    0m5.431s
user    0m19.573s
sys     0m0.336s

$ time bzip2 --best bzip2-best.img
real    0m15.588s
user    0m15.521s
sys     0m0.060s

$ time pbzip2 --best pbzip2-best.img
real    0m7.303s
user    0m27.558s
sys     0m0.396s