[pgcluster: 562] 負荷分散の検証方法

Kosiba Naoto cosibami @ hotmail.com
2004年 9月 28日 (火) 04:53:59 JST


小柴です。
お世話になります。

多少やり直しの時間がかかってもやはり最新版を
使ったほうがいいと考え、1.0.8rc2をインストールしました。
(三谷様、せっかく教えていただいたのにすみません)

クラスタサーバ3台に実験用のデータベースを作り、
負荷分散のテストをしようと思っているのですが、
ここで質問があります。

PGClusterのシステムの中で実際にデータベースを持っているのは
クラスタサーバ(私の場合3台) ですよね?
実際にデータベースを持っていないロードバランサがSQL文を受けたとき、
どのようにしてクラスタサーバ3台にそのクエリを振り分けるのでしょうか?

まだデータベースに触れて日が浅い私には、
クエリを発行して結果が返ってくるのは
実際にデータベースがあるマシンでクエリを発行してからこそ、
というイメージしかできません。
つまり、クラスタサーバ1、2、3のデータベースからデータを参照したいときは
それぞれクラスタサーバ1、2、3で select 〜 from〜 を行うしかない、
という具合です。

例えば、『select * from hoge;』 というクエリを100回発行する場合、
1つのクラスタサーバしかない場合は100回すべてそのサーバに行きますよね。
ですが、今回のようにロードバランサと3台のクラスタサーバがある場合、
ロードバランサによって100回のクエリがおよそ3分の1ずつ (理想ですが)
各サーバに振り分けられているのかを検証したい場合、
『select * from hoge;』 というクエリはどのマシン上で実行すればよいのでしょう
か?

今回作ったシステムは、公式ページの『システム構成例』 の
http://www.csra.co.jp/~mitani/jpug/pgcluster/stable/system2.png
の図に則ってシステムを構成しました。
外部(インターネット) につながっているのはロードバランサのみで、
クラスタサーバ、レプリケーションサーバのIPはプライベートアドレスです。
つまり、外部から直接各クラスタサーバにはアクセスできない状態です。

今回は外部からのアクセスを負荷分散する、ということが目的ではなく、
あくまでクエリが各クラスタサーバーに分散されているかを見ることが目的なので、

ロードバランサが外部とつながっているということは問題ではなく、
同一LAN上にある5台のマシンで負荷分散の検証だけが
できればよいのですが…。

言いたいことがうまく言い表せず、申し訳ありません。
負荷分散を検証するための大量の参照クエリはどのマシンで実行するのか、
ということが一番の疑問点です。

勉強不足、と気を悪くされた方がいたら申し訳ありません。
今後学校の授業も交えてさらに理解を深められるよう、
精進していきますのでどうかご容赦ください。

_________________________________________________________________
楽しい絵文字でココロ伝わるメッセンジャー http://messenger.msn.co.jp/ 




pgcluster メーリングリストの案内