96

PostgreSQLプロセスが「トランザクションでアイドル状態」であるとはどういう意味ですか?

私が見ているサーバーでは、「ps ax | grep postgres」の出力には、次のような 9 つの PostgreSQL プロセスが表示されます。

postgres: user db 127.0.0.1(55658) idle in transaction

これは、一部のプロセスがハングし、トランザクションがコミットされるのを待っているということですか? 関連するドキュメントへのポインタは大歓迎です。

4

2 に答える 2

69

PostgreSQLのマニュアルによると、これはトランザクションが (BEGIN 内で) 開いており、アイドル状態であることを意味します。考えている、または入力しているモニターを使用して接続しているユーザーである可能性が最も高いです。私のシステムにもそれらがたくさんあります。

ただし、レプリケーションに Slony を使用している場合、Slony-I FAQidle in transactionは、ネットワーク接続が突然終了したことを示唆している可能性があります。詳細については、その FAQ のディスカッションを確認してください。

于 2008-09-09T01:07:21.900 に答える
20

ここで述べたように: Re: BUG #4243: Idle in transaction pg_locks テーブルをチェックして、何がロックされているかを確認することをお勧めします。

于 2008-09-16T22:55:20.637 に答える