東京うぇ部

PHPをメインにしたプログラム情報共有サイト

Postgres

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割くらい速くなりましたが。。いいのかな。。

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

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

コメントを残す




このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事