74

一部のクライアントは、postgresql データベースに接続しますが、接続を開いたままにします。Postgresql に、一定量の非アクティブ状態の後にそれらの接続を閉じるように指示することは可能ですか?

TL;DR

Postgresql バージョン >= 9.2
THEN を使用している場合は、私が思いついたソリューションを使用してください

コードを書きたくない場合は、arqnidのソリューション
を使用してください

コードを記述したくない場合、
および Postgresql バージョンを使用している場合 >= 14
THENローレンツ アルベのソリューションを使用

4

7 に答える 7

22

数秒後に接続を閉じるPgBouncerなどのプロキシ経由で接続します。server_idle_timeout

于 2012-09-13T09:59:10.440 に答える
3

Postgresql 12 サーバー (以前の 9.6 および 10 バージョンを使用する同様のプロジェクトではなく) および Ubuntu 18 に接続されているクライアントが多すぎるため、接続が拒否されるという問題があります。

そういう設定なのかな

tcp_keepalives_idle 
tcp_keepalives_interval 

よりも関連性が高い可能性があります

idle_in_transaction_session_timeout

idle_in_transaction_session_timeoutは、ステートメントが正しく終了する非アクティブな接続ではなく、失敗したトランザクションからのアイドル接続のみを実際に閉じます...ドキュメントには、これらのソケットレベルの設定はUnixドメインソケットには影響しませんが、Ubuntuでは機能する可能性があると書かれています。

于 2020-08-26T15:34:42.863 に答える