2

非常に接続が多く、挿入が多いpostgresデータベースを実行しています(接続プールを実行する必要がありましたが、今は時間がありません)。

トラブルシューティングを行っているときに、netstat を使用して postgres への接続数を表示していました。通常、postgres.conf ファイルで (max_connections を介して) 指定したものよりも多くの情報が表示されます。

max_connections を 1000 に設定していても、netstat 経由で 1400 ~ 1600 の接続が表示されます。

誰が何が起こっているのか手がかりを持っていますか? これはどのように正確に起こりますか?

これに関する洞察は素晴らしいでしょう。

4

2 に答える 2

2

それらの接続がすでに閉じられている可能性はありますか? たとえば、Windows はすぐに接続を閉じませんが、状態を「TIME_WAITING.

そのため、接続は netsat に表示されますが、実際には閉じられています。

「ESTABLISHED」と表示されるものだけが「ライブ」接続です。

ところで、アプリケーションを変更せずに、接続プーラーを PostgreSQL サーバーの前に配置するだけです。pgPool (または pgBouncer) は、アプリケーションに対して実際の PostgreSQL サーバーであるかのように見せかけ、「背後で」プーリングを行います。

于 2010-09-03T18:01:04.300 に答える
0

接続プールを使用します。接続数が 1000 を超えると、データベースの速度が大幅に低下します。接続数が 1000 の場合でも、多くのコアと RAM を備えた $$$$$ ハードウェアが必要です。接続プールを使用すると、はるかに効率的です。

于 2010-09-03T18:23:45.723 に答える