Postgresフルバックアップ時の負荷を下げたい

最近、毎晩深夜におこされます。

そうです。(そうじゃない!)


毎日深夜に行っている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割くらい速くなりましたが。。いいのかな。。


とりあえず使えそうなので、バックアップ取得している

サーバーたちに組み込んじゃおうかなと思います♪


コメントを残す




Menu

HOME

 TOP