トリアエズぶろぐ
フリーランスでやってる77世代のWEBプログラマが福岡からのんびりとお送りいたします。
スポンサーサイト


一定期間更新がないため広告を表示しています

<< 大名に「大人のためのインテリア」ショップ | main | 会社ロゴ2.0 >>
PostgreSQLをクラスタリングで(ry その2


前回、PostgreSQLを負荷分散する為にPGClusterの導入などを試行錯誤していましたが、結局pgpoolに落ち着きました。。。
PGClusterの障害機の自動復旧機能(他のDBからデータが自動的にコピー、復旧中に受けたクエリーも反映)が非常に魅力的だったものの、詰まる所シンプルベストにしようかな、ってことでpgpoolに決定。

・PGClusterがVerUPしたら複数台のDBサーバ全部でmakeしなきゃなぁ。。。
・pgpoolは1台だけにrpmで簡単インストール&VerUP。超簡単。
・現在のpgpoolはDBノードが2台までという制約があるけど、
 次期バージョンのpgpool-IIではDBノードが3台以上いけるらしいので期待age。
・pgpoolのpgbench結果が前回のPGClusterより良かった。(実施のタイミングによる差が大きく関係してるっぽいけど

PostgreSQL8.1.4をソースからインストール
pgpoolにて2台構成
max_clients = 128
shared_buffers = 10000
1    2    4    8    16   32   64
249 413 430 421 396 361 295
こんな感じに。

↓おまけで参考にならないグラフ。
PostgreSQL / PGCluster / pgpool
やはり単体DBよりはパフォーマンスが落ちている。
ルータがボトルネックになっているのは間違いないっぽいなぁ。。。

勉強がてら、YAMAHAのルータでも買うか。。。タカイナァ
本当はサクッと買って、余計なパケットが無い状態で純粋にpgbenchしたかったんだけど、つなビィ使って頂いているお客さんからちらほらクレームが来つつあったので緊急(強行)メンテナンスを行って、クラスタリングで負荷分散を実施。
結果、体感速度2〜3倍。わーい。さっきまで 24 とかあったWEBサーバのload averageも今では2〜3(!)pgpool、素晴らしすぎる。。。

しかし、複数台運用とか(自コンテンツでは)初めてだからドキドキするなぁ。
しばらく用心して様子見よう。。。

以下、DB移行メモ。

元サーバ:PostgreSQL7.2.3
DB1:pgpool + PostgreSQL8.1.4
DB2:PostgreSQL8.1.4

# 元サーバ:更新系クエリをストップ
pg_dumpall -c > dumpall.txt
# 元サーバ→DB1
rsync -vz -e ssh ./dumpall.txt postgres@db1:/home/postgres
# DB1
pgpool stop
psql template1 < ./dumpall.txt
postgresql stop
# DB2
postgresql stop
# DB1→DB2
rsync -avz --delete -e ssh /usr/local/pgsql/data/ postgres@db2:/usr/local/pgsql/data
# DB2
postgresql start
# DB1
postgresql start
pgpool start

show pool_status;
で動作確認。おわり。

スポンサーサイト


ルータ購入ですか?!

そしたらお手頃でバカハヤのCisco1812jをおすすめしますよwwwww

#入る予定だった会社なんでw
#まだ買ってなかったらぜひw
ばやし | 2006/08/23 23:02
シスコ…設定難しす…(´・ω・`)
なんかこう、ブラウザでチャカッと設定できてチョッ速なルータ無いですかねw
akihiro | 2006/08/24 12:59
1812jもブラウザで設定出来ますYOYOYO!

ちなみに40MbpsしかでなかったウチのLinuxルータを1812jに変えたら、一気に70Mbps後半でるようになりました。
ばやし | 2006/08/25 01:08
えぇぇぇ約2倍!ですか・・・。
ブラウザでも設定…シスコシスコシスコ…(;´Д`
akihiro | 2006/08/26 17:41
COMMENT









Trackback URL
http://akihiro.jugem.jp/trackback/124
TRACKBACK