web-dev-qa-db-ja.com

PostgreSQLデータベースをプロファイリングする方法は?

PostgreSQLにあるデータベースで行われているすべてのアクティビティをプロファイリング(監視)したいと思います。

これを行うのに役立つそのようなユーティリティはありますか?

29
Yogi Yang 007

「目を離さない」ために、私は pgtop を使用します。これは、Unixの「top」コマンドを意図的に模倣するプログラムです。

21
bortzmeyer

「目を離さない」と「プロフィール」は、私の見解ではまったく異なる2つのタスクです。

プロファイリング(現在何が起こっているかについてのライブビューではありませんが、どのクエリに最も時間がかかるかなどを確認するため)については、pgFouineをチェックしてください。

http://pgfouine.projects.postgresql.org/

これにより、どのクエリがリソースを大量に消費するかを確認し、適切なアクションを実行できます。不足しているインデックスを追加したり、他の手法を使用してクエリを書き換えたりします。

36
rebra

Rebraが答えたので、別のプロファイリングツールpgbadgerが出ました。ここで見つけることができます: http://dalibo.github.io/pgbadger/

非常に詳細なレポートとグラフを取得できます。

pgfouineはもうメンテナンスされていません。最後の更新は2010年でした。

8
L. G.

さて、選択、更新、削除などに関して何が起こっているかを見ている場合、pg_catalogスキーマにはいくつかのビューがあり、私は主にpg_stat_user_tablespg_stat_user_indexesを使用しますが、すべてpg_stat*内にさらに多くのビューがあります。

現在サーバーで何が実行されているかを示すpg_stat_activityビューもあります。

User_tablesとuser_indexesを使用する4つのmuninプラグインを一緒にハッキングしました。それらは利用可能です そこに

4
mat

Nagios-Pluginスクリプト または check_postgres.pl をご覧ください

2