PostgreSQLスキルアップノート(自己啓発のための個人サイト)

PostgreSQLの状況監視・統計情報コレクタ・概要および設定


【一覧に戻る】

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ PostgreSQLの状況監視・統計情報コレクタ・概要および設定
■■■■
■■■■
■■■■ 2012/11/17
■■■■ 使用環境:PostgreSQL9.1.4 (CentOS6.2)
                                                                   (C) 2012 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★自己都合により実機確認は9.1、マニュアルへのリンクは9.2としています。ご了承下さい。


【マニュアル】
・統計情報コレクタ→●[マニュアル]データベース活動状況の監視−統計情報コレクタ
・実行時統計情報→●[マニュアル]サーバの設定−実行時統計情報


【参考記事】
なし


■1■ 概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

省略



■2■ 関連する設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

関連する主な設定は以下の4点。
設定変更しなくても基本的な機能は有効になっている。
ただし、ユーザ定義関数の使用状況の追跡機能については、track_functionsパラメータが
デフォルトで機能を使用しない設定になっているため必要に応じて変更しておく必要がある。

-----------------------------------------------------------------------------
track_activities  サーバプロセスごとに現在実行されているコマンドの把握 
track_counts      テーブルおよびインデックスアクセスに関する統計情報収集 
track_functions   ユーザ定義関数の使用状況追跡 (★デフォルト無効)
track_io_timing   ブロックの読み込みと書き込み時間【9.2以降】
-----------------------------------------------------------------------------

ユーザ定義関数の使用状況追跡
track_functions = all

pl ・・手続き言語関数のみを追跡
all・・・SQL関数、C言語関数も追跡 (ただし単純なSQL関数は除かれる)
none・・機能無効(デフォルト)



【参考】パラメータの状況
────────────────────────────── 
show track_activities;
show track_counts;   
show track_functions;
show track_io_timing;


 track_activities
------------------
 on

 track_counts
--------------
 on

 track_functions
-----------------
 none              ←★デフォルトでは機能が使えない


track_io_timing;は9.2以降のため今回略




【参考】統計情報コレクタが使用する一時ファイル
──────────────────────────────

統計情報コレクタは一時ファイルを使う。
場所・・stats_temp_directoryパラメータ(デフォルトpg_stat_tmp)

test1=# show stats_temp_directory;
 stats_temp_directory
----------------------
 pg_stat_tmp
(1 row)


【□】 ls -l $PGDATA/pg_stat_tmp

-rw------- 1 postgres postgres 28215 11月 18 01:37 2012 pgstat.stat


※上記の設定をRAMなど高速なデバイスに変更するとよいとのマニュアル記載あり。



■3■ 統計情報コレクタの反映タイミング
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


統計情報コレクタの反映タイミングはいつ?【重要3点+1】

1)各サーバプロセスから統計情報コレクタへの情報送信は待機状態になる直前。
   だからすぐに情報が収集されるわけではない。

2)コレクタ側は受け取ったものを500msに1回反映(PGSTAT_STAT_INTERVAL構築時デフォルト)

3)ただし、track_activities関連は別。現在実行中のコマンドはリアルタイムで反映される。

4)pg_statテーブルを参照する側の注意事項

  トランザクションの中からselectするといつまでたっても反映された情報は見えない。
  必ずトランザクションの外で参照すること。



■4■ 標準統計情報ビュー
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

標準統計情報ビュー・・・統計情報コレクタによって反映された情報




オブジェクト別に分類すると・・

--全体-----------------------------------
pg_stat_activity
pg_stat_bgwriter
pg_stat_database

--テーブル-------------------------------
pg_stat_all_tables          all/sys/user
pg_statio_all_tables        all/sys/user
pg_stat_xact_all_tables     all/sys/user

--インデックス---------------------------
pg_stat_all_indexes         all/sys/user
pg_statio_all_indexes       all/sys/user

--シーケンス-----------------------------
pg_statio_all_sequences     all/sys/user

--関数-----------------------------------
pg_stat_user_functions      userのみ
pg_stat_xact_user_functions

---その他(レプリケーション関連)----------
pg_stat_replication 
pg_stat_database_conflicts





内容別に分類すると・・


基本的なもの

  pg_stat_all_tables          all/sys/user
  pg_stat_all_indexes         all/sys/user
  pg_stat_user_functions      userのみ


ioが含まれるもの

  pg_statio_all_tables        all/sys/user
  pg_statio_all_indexes       all/sys/user
  pg_statio_all_sequences     all/sys/user


xactが含まれるもの

  自分のトランザクション内の情報

  pg_stat_xact_all_tables     all/sys/user
  pg_stat_xact_user_functions






■5■ 統計情報関数 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【見送り】
★トラブル調査などでかなり使えそうなものあり。
★値のクリア用関数などが複数種類あり。




以上 
inserted by FC2 system