PostgreSQLにあるデータベースで行われているすべてのアクティビティをプロファイリング(監視)したいと思います。
これを行うのに役立つそのようなユーティリティはありますか?
「目を離さない」ために、私は pgtop を使用します。これは、Unixの「top」コマンドを意図的に模倣するプログラムです。
「目を離さない」と「プロフィール」は、私の見解ではまったく異なる2つのタスクです。
プロファイリング(現在何が起こっているかについてのライブビューではありませんが、どのクエリに最も時間がかかるかなどを確認するため)については、pgFouineをチェックしてください。
http://pgfouine.projects.postgresql.org/
これにより、どのクエリがリソースを大量に消費するかを確認し、適切なアクションを実行できます。不足しているインデックスを追加したり、他の手法を使用してクエリを書き換えたりします。
Rebraが答えたので、別のプロファイリングツールpgbadger
が出ました。ここで見つけることができます: http://dalibo.github.io/pgbadger/
非常に詳細なレポートとグラフを取得できます。
pgfouineはもうメンテナンスされていません。最後の更新は2010年でした。
さて、選択、更新、削除などに関して何が起こっているかを見ている場合、pg_catalog
スキーマにはいくつかのビューがあり、私は主にpg_stat_user_tables
とpg_stat_user_indexes
を使用しますが、すべてpg_stat*
内にさらに多くのビューがあります。
現在サーバーで何が実行されているかを示すpg_stat_activity
ビューもあります。
User_tablesとuser_indexesを使用する4つのmuninプラグインを一緒にハッキングしました。それらは利用可能です そこに
Nagios-Pluginスクリプト または check_postgres.pl をご覧ください