Submit Search
明日から使えるPostgre sql運用管理テクニック(監視編)
48 likes
29,368 views
K
kasaharatt
1 of 40
Download now
Downloaded 241 times
1
2
3
4
5
6
7
8
9
10
11
12
Most read
13
14
15
Most read
16
17
Most read
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
More Related Content
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PDF
まずやっとくPostgreSQLチューニング
Kosuke Kida
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
PDF
Where狙いのキー、order by狙いのキー
yoku0825
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PDF
MySQLで論理削除と正しく付き合う方法
yoku0825
PPTX
Redisの特徴と活用方法について
Yuji Otani
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
まずやっとくPostgreSQLチューニング
Kosuke Kida
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Where狙いのキー、order by狙いのキー
yoku0825
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
MySQLで論理削除と正しく付き合う方法
yoku0825
Redisの特徴と活用方法について
Yuji Otani
What's hot
(20)
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PDF
Twitterのsnowflakeについて
moai kids
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
PPTX
iostat await svctm の 見かた、考え方
歩 柴田
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPTX
SQLアンチパターン メンター用資料
Hironori Miura
PDF
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
PDF
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
NTT DATA Technology & Innovation
PPTX
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
PDF
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
PDF
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
PDF
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
PDF
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
Insight Technology, Inc.
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
Twitterのsnowflakeについて
moai kids
Javaのログ出力: 道具と考え方
Taku Miyakawa
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
本当は恐ろしい分散システムの話
Kumazaki Hiroki
iostat await svctm の 見かた、考え方
歩 柴田
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
SQLアンチパターン メンター用資料
Hironori Miura
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
NTT DATA Technology & Innovation
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
Insight Technology, Inc.
Ad
Viewers also liked
(8)
PDF
Postgre sql9.3 newlockmode_and_etc
kasaharatt
PDF
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
kasaharatt
PDF
Postgres Toolkit
Uptime Technologies LLC (JP)
PDF
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
PDF
OSC沖縄2014_JPUG資料
kasaharatt
PDF
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PDF
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
PDF
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
Postgre sql9.3 newlockmode_and_etc
kasaharatt
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
kasaharatt
Postgres Toolkit
Uptime Technologies LLC (JP)
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
OSC沖縄2014_JPUG資料
kasaharatt
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
Ad
Similar to 明日から使えるPostgre sql運用管理テクニック(監視編)
(20)
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PDF
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
PDF
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PDF
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PDF
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PDF
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
Shigeru Hanada
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PDF
PostgreSQL運用管理入門
Yoshiyuki Asaba
PDF
新しくなったPg monzでpostgre sqlのクラスタを監視しよう
Yoshinori Nakanishi
PDF
A Tour of PostgreSQL
EDB
PDF
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
PDF
KOF2015 PostgreSQL 9.5
Toshi Harada
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
PDF
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
PDF
Chugoku db 17th-postgresql-9.6
Toshi Harada
PDF
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
PDF
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
Shigeru Hanada
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PostgreSQL運用管理入門
Yoshiyuki Asaba
新しくなったPg monzでpostgre sqlのクラスタを監視しよう
Yoshinori Nakanishi
A Tour of PostgreSQL
EDB
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
KOF2015 PostgreSQL 9.5
Toshi Harada
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
Chugoku db 17th-postgresql-9.6
Toshi Harada
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
明日から使えるPostgre sql運用管理テクニック(監視編)
1.
明日から使えるPostgreSQLの 運用管理テクニック (監視編) 2013年9月14日 OSSC Hokkaido
2013 日本PostgreSQLユーザ会 笠原 辰仁
2.
自己紹介 ● 笠原辰仁@kasa_zip ● 2004年からPostgreSQLを触ってます ● SIerでPostgreSQLの技術支援や研究開発 ● たまにユーザ会の勉強会などで講演したりなど
3.
本日のお話 ● 運用管理の 監視 に特化した話です ● 監視に重要となる考え方、観点とともに、 基本的な設定やテクニックを中心に紹介します –
まずは「これだけはやっておこう」というアレコレ ● PostgreSQLを使う(使ってみたい)ことになっ たけど、よくわからなくて困っている方の手助 けになれば幸いです ● バージョンに依存した話ではありません – 機能上、バージョンを意識した話は注釈を入れてい ます
4.
(ちょっと寄り道) 最近のPostgreSQL 2011 2012 2013 9.0 9.1 9.2 2010 8系 -2009 9.3 2013.9.9 に最新版となる Ver 9.3.0
リリース! 非同期レプリケーション ホットスタンバイ SQL構文強化 同期レプリケーション UNLOGGED TABLE SQL/MED カスケードレプリケーション IndexOnlyScan スケーラビリティ向上 Viewの改良 postgres_fdw JSON型用演算子 Fast promote ..etc
5.
運用管理には何がある? ■ 監視 ・
レポート 死活監視 リソース監視・性能監視 統計情報確認 ■ サービス管理 停止 / 再起動 フェイルオーバ プロモート ■ バックアップ/リストア バックアップ PITR ■ 性能維持 メンテナンスコマンド実施 ■ 性能分析 / トラブルシュート クエリキャンセル ボトルネック調査 実行計画分析 ■ アップデート セキュリティアップデート アップグレード
6.
監視の目的と役割 ● 運用管理の目的 – DBの状態を適切に把握し、健全な状態を保つこと ● 監視の目的 – 様々な情報を補足し現状を把握する –
加えて今後に予想される状況を推測する ● 見えている問題だけでなく、隠されている問題も ● 運用管理の起点ともいえる仕事 – 監視で得た情報がないと始まらない ● サポートへのエスカレーション時にも必要 – 地味だけどバックアップやメンテナンスと同じ様に重要
7.
監視対象には何がある? ■ 死活監視 外形監視(ping/port/SQL監視) H/W監視 プロセス監視 ログ監視 ■ リソース監視・性能監視 CPU/MEM/IO/NW使用量監視 ディスク容量監視 スロークエリ監視 最頻SQL監視 キャッシュヒット率監視 レプリケーション遅延監視 ■
統計情報レポート トランザクション量 コミット数/ロールバック数 アーカイブ量 DBサイズ量 チェックポイント頻度 自動VACUUM頻度 同時接続数 スループット・レスポンス バッチ処理時間 他にも、システム特性に応じて様々・・
8.
監視対象には何がある? ■ 死活監視 外形監視(ping/port/SQL監視) H/W監視 プロセス監視 ログ監視 ■ リソース監視・性能監視 CPU/MEM/IO/NW使用量監視 ディスク容量監視 スロークエリ監視 最頻SQL監視 キャッシュヒット率監視 レプリケーション遅延監視 ■
統計情報レポート トランザクション量 コミット数/ロールバック数 アーカイブ量 DBサイズ量 チェックポイント頻度 自動VACUUM頻度 同時接続数 スループット・レスポンス バッチ処理時間 まずはログから!
9.
ログでこれだけは押さえておこう ● ログから分かること – 何をログから読み取る必要があるだろう? – そもそもログは何を出してくれるのか? ● 設定 –
必要な情報を出力できるよう適切に設定 – 問題が起こってからでは後の祭り ● ログの基本的な見方 – 自分でログを見て何が起こっているかを判断する – 事象によって緊急度や必要なアクションが変わる – ログはトラブルシュートの起点
10.
PostgreSQLのログで分かること ● エラーなどの異常処理 – 無視できるものから、システム停止に至るまで ● スロークエリ – 指定時間より時間のかかったDML・DDL文 ● 処理されたDML、DDL –
ユーザ毎に出力する・しないが制御可能 – 監査や定期処理の監視に ● autovacuumの処理 ● Checkpoint処理 ● 接続、切断処理 ● など
11.
ログの設定(これだけはやっておく) パラメータ 説明 おすすめ設定 log_destination
ログの出力形態 stderr, (ログ監視ツール有 syslog) or csvlog, (ログ監視ツール有 syslog) logging_collector Stderrやcsvlogログを ファイルへリダイレク トするか? on log_line_prefix ログメッセージの接頭 情報 (9.0 ~) [%t][%p][%c-%l][%x][%e]%q(%u, %d, %r, %a) (~8.4)l [%t][%p][%c-%l][%x ]%q(%u, %d, %r) log_line_prefix は時間やログ対象処理のDB、ユーザなどなど、 ログ解析に必要な情報を付与するので絶対指定すること。 デフォルトは何も指定されていません!!
12.
ログの設定(必要ならばやっておく) パラメータ 説明 log_connections ユーザの接続時刻を記録 log_disconnections
ユーザの接続断の時刻と接続していた時間を記録 log_statement 実施したSQL文 接続系のログは監査などに有用です。 log_statementは監査用途の他、定期メンテ時の オペレーションチェックなどにも便利です。 ただし、全てのSQLを記録するのは避けましょう。 特定のセッションで動的に指定する、もしくは DBに対して重要な変更を実施できるスーパーユーザに設定し ておくと便利です。
13.
(参考) sysadm ユーザの処理を記録する postgres=#
ALTER ROLE sysadm SET log_statement TO 'all'; postgres=# SELECT usename, usesuper, useconfig FROM pg_user; usename | usesuper | useconfig ----------+----------+--------------------- postgres | t | sysadm | t | {log_statement=all} (2 rows)
14.
ログの設定(できればやっておく) パラメータ 説明 おすすめ設定 log_min_duration_statement
本パラメータの指定時間 以上かかったSQL文を時 間とともに出力する '10sec' (要件に応じて) log_autovacuum_min_duration 本パラメータの指定時間 以上かかった autovacuumの処理をロ グに出力する '1min' log_min_duration_statement は、性能上問題のあるSQLを あぶり出すのに便利です。可能な限り活用しましょう。
15.
ログの見方 レベル syslog eventlog
説明 PANIC CRIT ERROR クリティカルなエラーなど、DBインス タンス全体に影響する問題。 FATAL ERR ERROR 接続エラーや強制切断など、セッショ ンレベルに影響する問題。 LOG INFO INFORMATION チェックポイントやautovacum実施、 スロークエリ結果など、DBAが把握す べき処理。 ERROR WARNING ERROR シンタックスエラーなど、SQLレベル に影響する問題。 WARNING NOTICE WARNING 作法違反の警告。アプリケーションな どの見直しを推奨。 NOTICE NOTICE INFORMATION ユーザ補助となる情報。 INFO INFO INFORMATION ユーザが明示的に出力する、ユーザ補 助となる情報。 DEBUG DEBUG INFORMATION 開発時向け。量が多いので運用時に出 力しないように! エラーレベルごとの意味を押さえましょう。 (LOGを除き)ERROR以上は即座の対応が必要です。
16.
ログの見方 カテゴリ 内容 [エラーレベル] エラー内容 STATEMENT
エラー起因となった実際の処理内容 LOCATION エラーが発生したコード上の位置 HINT 発生したエラーの原因や回避策 CONTEXT エラーが発生したコンテキスト(関数など) PostgreSQLでは、エラーメッセージの他、発生個所や解決 のためのヒントもログに添えてくれます。 落ち着いて読み込み、適切なアクションにつなげましょう。
17.
(参考) ログメッセージの例 (表示の関係で、prefixを削っています) LOG: 22023:
invalid value for parameter "log_min_duration_statement": "10sec" HINT: Valid units for this parameter are "ms", "s", "min", "h", and "d". LOCATION: set_config_option, guc.c:5472 LOG: F0000: configuration file "/Users/postgres/base/pgsql930/postgresql.conf" contains errors; unaffected changes were applied FATAL: 57P01: terminating connection due to administrator command CONTEXT: SQL statement "select pg_sleep($1)" PL/pgSQL function sample_f(integer) line 1 at SQL statement LOCATION: ProcessInterrupts, postgres.c:2857 STATEMENT: SELECT sample_f(1000);
18.
PostgreSQLのログでできないこと ● レベルやカテゴリ別のログルーティング – PostgreSQLは基本的に全てのログメッセージを 特定のファイルに吐きます – ERRORだけをsyslogに吐く、スロークエリだけ 別のファイルに出力する、といった機能はありま せん ● 古いログの削除 –
ログファイルの切り替えは可能ですが、古いログ のクリーンナップ機能はありません ● logrotateやcronなどを利用し、ユーザ側で古いログの 別所へのアーカイブ、あるいは削除を実施しましょう
19.
PostgreSQLのログでできないこと ● ALERT – 特定のエラーメッセージやエラーコードの出現時 にアラートをあげる機能はありません – 別途、ログ監視ツールなどを利用して監視を行い ましょう
20.
監視対象には何がある? ■ 死活監視 外形監視(ping/port/SQL監視) H/W監視 プロセス監視 ログ監視 ■ リソース監視・性能監視 CPU/MEM/IO/NW使用量監視 ディスク容量監視 スロークエリ監視 最頻SQL監視 キャッシュヒット率監視 レプリケーション遅延監視 ■
統計情報レポート トランザクション量 コミット数/ロールバック数 アーカイブ量 DBサイズ量 チェックポイント頻度 自動VACUUM頻度 同時接続数 スループット・レスポンス バッチ処理時間 特にはまりやすい容量監視
21.
容量監視でこれだけは押さえておこう ● どこに何があるのか – PostgreSQLが扱うファイルとかはどこにあるのか – 溢れた場合に即システム停止になる・・・ ● 測るタイミング –
常時見ておくべきもの – 特定の処理の前に見ておくべきもの – メンテナンス処理の前は要注意!! ● 測り方 – どのようにしてサイズを取得するのか – 何のサイズを測っているのかを正しく知る
22.
PostgreSQLが関連するファイルと ディレクトリ ディレクトリ名 利用用途 監視すべきタイミング
サイズの測り方 $PGDATA/base 各テーブルやイン デックスの格納 常時 メンテナンス前 専用の関数 (次ページ) $PGDATA/base/pgsql_tmp ディスクソートや ハッシュ処理など の一時領域 バッチ処理時 メンテナンス処理時 ls や du $PGDATA/pg_log サーバログの格納 常時 ls や du $PGDATA/pg_xlog トランザクション ログ(WAL)の格納 常時 ls や du アーカイブディレクトリ WALのアーカイブ 格納 バッチ処理時 メンテナンス実行時 ls や du テーブルスペース 各テーブルやイン デックスの格納 常時 メンテナンス前 専用の関数 (次ページ)
23.
オブジェクトのサイズ 対象 関数 備考 テーブル
pg_relation_size() テーブル+TOAST pg_table_size() (ver9.0から) インデックス(単体) pg_relation_size() インデックス(合計) pg_indexes_size() テーブルに付与された全ての インデックス(ver9.0から) テーブル+TOAST+ インデックス(合計) pg_total_relation_size() テーブルスペース pg_tablespace_size() データベース pg_database_size() 目的に応じて様々な関数を利用できます。 名前が若干紛らわしいので、間違わないように注意し ましょう!
24.
こんな時に注意 ● VACUUM実施 – 意外とWALが大量に出る – アーカイブログディレクトリに要注意 ● REINDEXやALTER
TABLE実施 – 内部的に新規作成 & スワップ – 対象のテーブルやインデックスがあるディレクト リを圧迫 – 加えてWALも出る – REINDEXやALTER TABLE実施前は、最低限対 象テーブルの1.5倍のサイズの空き領域があること を確認
25.
監視対象には何がある? ■ 死活監視 外形監視(ping/port/SQL監視) H/W監視 プロセス監視 ログ監視 ■ リソース監視・性能監視 CPU/MEM/IO/NW使用量監視 ディスク容量監視 スロークエリ監視 最頻SQL監視 キャッシュヒット率監視 レプリケーション遅延監視 ■
統計情報レポート トランザクション量 コミット数/ロールバック数 アーカイブ量 DBサイズ量 チェックポイント頻度 自動VACUUM頻度 同時接続数 スループット・レスポンス バッチ処理時間 稼働状態を把握しよう!意外と簡単!?
26.
稼働統計情報監視でこれだけは押さえておこう ● 取得可能な稼働統計情報 – PostgreSQLの稼働統計情報とは何か – どんな情報がとれるのか? ● 取得方法 –
基本的にSQLで取得することになる – 累積または揮発情報となるので定期的に取得する ● 情報の見方と使い方 – 取得したら使う – 今と将来の状態を予測しよう!
27.
稼働統計情報って? ● PostgreSQLが内部で蓄積している様々なアクティ ビティ情報 – stats_collectorというプロセスが情報を受け付け記録 – ユーザはビューを通して参照可能 PostgreSQLインスタンス postgres postgres autovacuum stats_collector checkpointer 稼働統計 情報
28.
抑えておくべき稼働統計情報 ビュー 説明 役立つ情報 pg_stat_database
DB単位の稼働統計 情報ビュー - 基本的に累積情報 DB単位の ・ コミット/ロールバック数 ・ 現在の接続数 ・ 更新&参照件数 ・ deadlock数 pg_stat_user_tables テーブル単位の稼働 統計情報ビュー - 基本的に累積情報 テーブル単位の ・ SeqScan回数と件数 ・ 更新件数 ・ 最後のautovacuum/analyze時間 pg_stat_activity 現在の各クライアン トからの処理内容 - 揮発情報 現在DBに接続しているクライアントの ・ クエリ内容 ・ 接続開始&トランザクション開始 &クエリ開始時間 ・ ロック待ちかどうか たくさんの稼働統計情報用のビューがありますが、ま ずは上記3つのビューを使えるようにしましょう。 これで大半のことが分かります。
29.
ぜひ使いたい稼働統計情報 ビュー 説明 役立つ情報 pg_stat_statements (v8.4から) DBインスタンス全 体の各SQLの稼働統 計情報ビュー -
基本的に累積情報 各SQLの ・ 実施回数 ・ 累積レスポンスタイム ・ 取得された件数 pg_stat_statementsにより、 SQLのパフォーマンス情報が非常に手軽に取得 できます。 ただし、このビューを有効にするには PostgreSQLの再起動が必要になるため、 できれば早い段階で導入しておきましょう!
30.
(参考) pg_stat_statementsの導入 1. rpm
などでcontribパッケージを入れる (もしくはソースをmake && make install) – postgresql-xx-contrib-*.rpm 2. postgresql.conf の shared_preload_librariesパラメータを 次の様に設定 shared_preload_libraries = 'pg_stat_statement' 3. PostgreSQLを再起動(service postgresql restart など) 4. ビューを作成したいDBに対して CREATE EXTENSION pg_stat_statements; を実施 これだけ。
31.
(参考) pg_stat_statementsの導入 SELECT dbid,
userid, substr(query,1, 15) || '...' || right(query,15), total_time, calls, total_time/calls as avg_time, rows FROM pg_stat_statements order by total_time desc limit 5; -[ RECORD 1 ]--------------------------------- dbid | 16391 userid | 10 ?column? | UPDATE pgbench_... WHERE bid = ?; total_time | 2393.6419999997 calls | 61019 avg_time | 0.0392278142873483 rows | 61019
32.
稼働統計情報の取得 ● SELECT文でビューにアクセスして取得 ● スーパーユーザで実施する – 権限の問題で情報の取りこぼしが起こる ● 累積情報が主となるので定期的に取得 – 差分を見られるようにする –
最低1日1回 – バッチや繁忙時間帯の前後に取得すると効果的
33.
稼働統計情報の取得 ● ちょっとした一工夫で解析が楽に – COPY文でCSV形式に保存しておく – 別テーブルへ保存しておく -
- COPY取得 COPY (SELECT now(), * FROM pg_stat_database WHERE datname = 'postgres') TO '/var/lib/pgsql/stats_log/xxxx.csv' WITH CSV; - - 別テーブルへ保存 CREATE TABLE pg_stat_database_store (correct_time timestamp, LIKE pg_stat_database); INSERT INTO pg_stat_database_store SELECT now(), * FROM pg_stat_database WHERE datname = 'postgres'
34.
稼働統計情報の取得 ● ちょっとした一工夫で解析が楽に – 現在時刻との差分で長時間実施処理を把握 postgres=# SELECT now()
- xact_start AS txn_duration, now() - query_start AS query_duration, datname, pid, usename, query, waiting FROM pg_stat_activity WHERE pid <> pg_backend_pid() order by query_duration desc; -[ RECORD 1 ]--+------------------------------- txn_duration | 00:02:06.745105 query_duration | 00:02:06.745105 datname | postgres pid | 29689 usename | postgres query | SELECT * from pg_sleep(10000); waiting | f
35.
でもSQL発行はメンドクサイ・・ ● ツールを活用するのも手だて ● pgperf – 稼働統計情報の保存用スキーマとテーブル作成 – 任意のタイミングで情報一括取得 –
差分を自動計算してビューとして表示 – アドホックに情報を確認したい場合に有用 – http://pgsqldeepdive.blogspot.jp/2012/12/bl og-post.html
36.
でもSQL発行はメンドクサイ・・ ● ツールを活用するのも手だて ● pgperf – 稼働統計情報の保存用スキーマとテーブル作成 – 任意のタイミングで情報一括取得 –
差分を自動計算してビューとして表示 – アドホックに情報を確認したい場合に有用 – http://pgsqldeepdive.blogspot.jp/2012/12/bl og-post.html
37.
でもSQL発行はメンドクサイ・・ ● pg_statsinfo – http://pgstatsinfo.projects.pgfoundry.org/pg_statsinfo-ja.html
38.
まとめ ● ログ監視、容量監視、稼働統計情報の3つにつ いて、基本的な観点やテクニックをお伝えし ました – すぐに使えるものばかりですね! – 基本ではありますが、これだけできれば大部分の 問題に対処できると思います ● 今日紹介したもの以外にも、重要な監視項目 はあります –
プロセス監視とかHWリソース監視とか・・ – これらはまた別の機会にお話できれば・・ ● 適切な監視で、安心運用管理を!
39.
PostgreSQLの運用に役立つ 参考情報 ■ バックアップの入門に - PostgreSQLバックアップ・リカバリ入門
http://www.slideshare.net/satock/postgre-sql-20215836 ■ 運用管理全般について、もっと深く知りたい - PostgreSQL運用テクニック http://www.postgresql.jp/events/event_sozai/Summer_seminar2011_Operation_technique.pdf - PostgreSQL運用テクニック・レベルアップ編 http://www.postgresql.jp/events/pgcon2012/docs/c3.pdf - Let's Postgres 運用管理 http://lets.postgresql.jp/map/operation - OSS-DB Exam Gold 技術解説無料セミナー http://www.oss-db.jp/news/event/image/20130615_01.pdf
40.
ご清聴ありがとうございました
Download