私が走るとき
ps aux | grep postgres
またはトップ| grep ポストグレス
すべてのpostgresプロセスに関する情報が得られ、最後の列(コマンド)の構造は次のとおりです。
postgres: username db ip_address(xxxxx) QUERY_TYPE
たとえば、
postgres: postgres test 192.168.0.100(33195) SELECT
この数字(33195)とはどういう意味ですか?
私のデータベースに問題があり、この情報が役に立つかどうかを知りたいです。一部のクエリは長すぎます。
これは一種のプロセス依存関係ですか?
答え1
~によるとPostgreSQLドキュメント、
ほとんどのUnixプラットフォームでは、PostgreSQLは個々のサーバープロセスを簡単に識別できるようにpsによって報告されたコマンドのタイトルを変更します。
33195
あなたの例では、ポートはpostgresサーバーが接続可能なリモートシステムのようです。192.168.0.100
このようなものであることを確認してくださいnetstat -an | grep 33195
。
ただ見つけました。postgresql用のgitリポジトリ私はその行動を再追跡します。バックエンドの実行ps
次のようにリストを更新する関数です。
/*
* Set process parameters for ps
*
* WARNING: On some platforms the environment will be moved around to
* make room for the ps display string. So any references to
* optarg or getenv() from above will be invalid after this call.
* Better use strdup or something similar.
*/
init_ps_display(real_argc, real_argv, port->user, port->database,
remote_host);
そのうち、以前に設定されたRemote_hostがあります。