1.3. 負荷分散を試してみる

Pgpool-IIでは、読み込みクエリの負荷分散が可能です。 デフォルトでこの機能は有効です。 その効果を確かめるために、pgbench -Sコマンドを使ってみましょう。

    $ pgbench -p 11000 -c 10 -S -T 10 test
    starting vacuum...end.
    transaction type: <builtin: select only>
    scaling factor: 1
    query mode: simple
    number of clients: 10
    number of threads: 1
    duration: 10 s
    number of transactions actually processed: 148044
    latency average = 0.676 ms
    tps = 14802.897506 (including connections establishing)
    tps = 14810.213749 (excluding connections establishing)

    $ psql -p 11000 -c "show pool_nodes" test
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay 
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 11002 | up     | 0.500000  | primary | 75152      | true              | 0
    1       | /tmp     | 11003 | up     | 0.500000  | standby | 72893      | false             | 0
    (2 rows)
   

"select_cnt"カラムは、いくつSELECTが各々のノードに送られたかを示します。 設定がデフォルトで、Pgpool-IIは同じ数のSELECTを送ろうとするので、そのカラムはほぼ同じ値を示しています。

Pgpool-IIでは、負荷分散の更に洗練された戦略の利用が可能です。 詳細は項5.7をご覧ください。