ストリーミングレプリケーションモードを前提とする。

負荷分散

負荷分散先の決定

Pgpoolは、クライアントからの接続があると、すべてのバックエンドに対してまずコネクション接続を行なう。続いて、負荷分散設定(load_balance_mode)が有効な場合、セッション初期化プロセスの中で負荷分散先を決定する。負荷分散先はセッション単位でありセッション中は変更されない。

pgpool_select_load_balancing_node.png

redirect_app_namesredirect_dbnamesパラメータでキーワードstandbyが使われた場合は、スタンバイノードの中で重みを考慮した選択が行われる。
参考

セッション中の負荷分散先の確認

showコマンドで確認できる。下の例では、node_idが0のstandbyが選択されている。

postgres=# show pool_nodes                                                                                                        ;
 node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay 
---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
 0       | /tmp     | 11002 | up     | 0.500000  | primary | 0          | false             | 0
 1       | /tmp     | 11003 | up     | 0.500000  | standby | 0          | true              | 0
(2 rows)

負荷分散のプロセス詳細

セッション初期化でロードバランスノードが決定されるが、実際には送られてきたクエリの内容によって、選択されるノードが異なることがある。ざっくりと図示すると以下のようになっている。

pgpool-decide-load-balance-node.png

参考 http://www.pgpool.net/docs/latest/ja/html/runtime-misc.html

参考リンク


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP