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■ 統計情報関数
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【見送り】
★トラブル調査などでかなり使えそうなものあり。
★値のクリア用関数などが複数種類あり。
以上