SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

新しくなったpg_monzでPostgreSQLのクラスタを監視する

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第20回

  • X ポスト
  • このエントリーをはてなブックマークに追加

ストリーミングレプリケーション

 pg_monzはPostgreSQL単体で稼働するシングル構成の状態だけでなく、PostgreSQLのストリーミングレプリケーションを使った冗長構成の状態や、pgpool-IIを使った負荷分散クラスタの状態の監視を行うことができます。

 PostgreSQLのストリーミングレプリケーションを使った冗長構成では、プライマリサーバ、スタンバイサーバがそれぞれどのサーバで稼働しているかを把握する必要がありますが、複数のPostgreSQLサーバにログインして確認するのは手間がかかります。pg_monzではアプリケーションpg.statusを表示することで各サーバの役割を俯瞰的に確認することができます。以下の例では3台のPostgreSQLサーバが稼働しており、pgsql01がプライマリサーバ、pgsql02、pgsql03がスタンバイサーバであることが分かります。

図7 ストリーミングレプリケーションにおけるサーバの役割を表示
図7 ストリーミングレプリケーションにおけるサーバの役割を表示

 アプリケーションpg.stat_replicationを表示することでスタンバイサーバの状態を確認できます。以下の例ではプライマリサーバpgsql01にスタンバイサーバ192.168.1.14(pgsql02)、192.168.1.15(pgsql03)が接続されていること、レプリケーションの遅延は0byteであることが分かります。また、この環境では同期レプリケーションを設定しており、優先度(sync_priority)が1のpgsql02が同期スタンバイとして稼働していることが分かります。

図8 ストリーミングレプリケーションにおけるスタンバイサーバの状態
図8 ストリーミングレプリケーションにおけるスタンバイサーバの状態

 pg_monzではこの他にもストリーミングレプリケーションに関して以下のような情報を収集できます。

  • WAL sender/receiverのプロセス数
  • スタンバイサーバでのリカバリと競合するためにキャンセルされた問い合わせ数

pgpool-II

 pgpool-IIを使った負荷分散クラスタでは、クラスタの状態を把握するための情報をpgpool-IIからも得る必要があります。pg_monzではアプリケーションpgpool.nodesを表示することでpgpool-IIが管理しているバックエンドのPostgreSQLサーバの情報を確認できます。以下の例では3台のPostgreSQLサーバが正常稼働しており、192.168.1.13(pgsql01)がプライマリサーバ、192.168.1.14(pgsql02)、192.168.1.15(pgsql03)がスタンバイサーバであることが分かります。また、それぞれのサーバのステータスは正常(Backend statusが2.サーバダウン時は3が表示される)で、pgpool-IIからPostgreSQLサーバへSQLを負荷分散する際の重み付けは均等(0.33)に設定されていることが分かります。

図9 pgpoolが管理するバックエンドのPostgreSQLサーバの状態
図9 pgpoolが管理するバックエンドのPostgreSQLサーバの状態

 アプリケーションpgpool.connectionsを表示することでpgpool-IIが保有するコネクション数を確認できます。以下の例ではpgpool01からバックエンドのPostgreSQLサーバ3台に1本ずつ計3本のコネクションを持っていることが分かります。また、クライアントに対してpgpool-IIは最大10本のコネクションを持つことが可能で、1本のコネクションを現在使用中であることが分かります。

図10 pgpool-IIに接続するコネクション数
図10 pgpool-IIに接続するコネクション数

 pg_monzでは、この他にもpgpool-IIに関して以下のような情報を収集できます。

  • pgpool-IIの死活状態
  • watchdog利用時の仮想IP割り当て有無
  • クエリキャッシュ利用時のキャッシュヒット率、件数
  • pgpool-IIのログへのエラーメッセージ出力有無

次のページ
最後に

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

中西 剛紀(TIS株式会社)(ナカニシ ヨシノリ)

TIS株式会社 IT基盤技術本部 OSS推進室所属。 OSS推奨ミドルウェアスタック「ISHIGAKI Template」の開発とともに、OSSのプロダクトサポートや技術支援を提供するサービスに従事している。過去の業務で様々なDBMSと苦楽を共にした後、現在はPostgreSQLに心酔。日本Pos...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8885 2015/08/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング