1. ホーム
  2. debugging

[解決済み] pg_stat_activityの使い方は?

2022-02-11 22:17:52

質問事項

ライブの Django アプリケーションでどのクエリが実行され、どれだけのメモリを消費しているかを確認したいのですが、どうすればいいですか?私は以下のことを読みました pg_stat_activity は、Postgres データベースを監視するのに便利です。

私は Postgresのドキュメントを見る しかし、私は非常に単純な質問をしているのですが、そこには回答がないようです。

を実際に始めるにはどうしたらいいのでしょうか? pg_stat_activity ? 何を使えばいいのか、どこに打てばいいのか?

解決方法は?

関連性の高いこちらをご覧ください。 質問に対する回答 Postgres クエリの実行時間について教えてください。 .

pg_stat_activity pg_catalog スキーマを使用します。

でクエリできます。 SELECT を他のテーブルと同様に使用することができます。 SELECT * FROM pg_stat_activity . その リンク先のマニュアルページ は、そのコラムを解説しています。

のような他のテーブルと結合したい場合があります。 pg_class (テーブル)になります。 pg_namespace (スキーマ)など

制限事項

pg_stat_activity が行います。 ない は、バックエンドのメモリ使用に関する情報を公開します。そのためには、オペレーティング・システム・レベルの機能を使う必要があります。しかし、それは する プロセスID、アクティブユーザー、現在実行中のクエリ、アクティビティステータス、最後のクエリが開始された時間などがわかります。これは、長時間稼働している idle in transaction セッション、非常に長く実行されているクエリなど。

率直に言って、PostgreSQLの組み込み監視はかなり初歩的なものです。これは、取り組むのにそれほどエキサイティングではない分野の1つであり、商用顧客はあまりそれに資金を提供してくれません。ほとんどの人は、以下のようなツールを使っています。 check_postgres をIcingaやMuninと組み合わせたり、Zabbixや他の外部監視エージェントを使用したりしています。

あなたの場合、本当に必要なのは pg_stat_statements または PgBadger ログ解析に適切なロギング設定と、場合によっては auto_explain モジュールを使用します。