最近、毎晩深夜におこされます。
そうです。(そうじゃない!)
毎日深夜に行っているPostgresフルバックアップで
起こされるんです(涙)
Postgresのdataディレクトリを丸ごとバックアップ(tar)してるのですが、
tarコマンドって容量圧縮するファイルやディレクトリの容量が
多ければ多いほど、勝手にがんばっちゃうんです。。
I/O値がとんでもない事になっちゃいます。
そこで何か対策がないかなと探してみたらあるもんですね。
cstreamコマンドがなかなかグッジョブしてくれるみたいです。
早速導入をしてみます。
前提条件
CentOS5.8
まず、cstreamを組み込みます。
パッケージはこちらで適したファイルをgetしてくださいね。
# wget http://packages.sw.be/cstream/cstream-3.1.0-1.el5.rf.x86_64.rpm # rpm -ivh cstream-3.1.0-1.el5.rf.x86_64.rpm
後は簡単です。1秒間に1MB毎に圧縮するようにします。
# tar cfz - data | cstream -t $((1*1024*1024)) > /backup/postgres/data.tar.gz
ただ、
# tar cfz - data | cstream -t $((2*1024*1024)) > /backup/postgres/data.tar.gz
このように1秒間に2MB毎に圧縮するようにしても時間が倍の速さにならないんですよね。。
※上記コマンドの前にtimeを付けると実際の時間が測定できます。
なんででしょう。とは言っても8割くらい速くなりましたが。。いいのかな。。
とりあえず使えそうなので、バックアップ取得している
サーバーたちに組み込んじゃおうかなと思います♪