49

ライブの Django アプリケーションで実行されているクエリと、それらが消費しているメモリの量を確認したいと思います。pg_stat_activityPostgres データベースを監視するのに役立つと読んだことがあります。

私はPostgres のドキュメントを見てきましたが、そこには答えがないように見える非常に単純な質問があります。

を実際に始めるにはどうすればよいpg_stat_activityですか? 使用するには何を入力すればよいですか? また、どこに入力すればよいですか?

4

2 に答える 2

66

質問"Postgres Query execution time"については、この密接に関連する回答を参照してください。

pg_stat_activitypg_catalogスキーマ内のビューです。

SELECT他のテーブルと同様に、そこから ing することでクエリを実行できます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モジュールを使用したログ分析。

于 2013-07-15T13:20:34.833 に答える