2016-10-24 5 views
0

現在、データベース接続プーリング用にPgbouncer(データベースサーバーにインストール済み)を使用しています。同時に、独自の接続プールを持つNpgsqlライブラリを使用します。私は、Npgsqlでプーリングを無効にし、Pgbouncerのみを使用するように推奨することをお読みになりました。NpgsqlとPgBouncerポーリング

Npgsqlで接続プーリングを無効にすると、パフォーマンス上の問題が発生します。 私のテストによると、pgbouncerに接続するのに100msかかる。 PgBouncerを使用したサーバーへの遅延は、< 1msです。

5つの接続で5つのクエリを実行すると、500ミリ秒以上かかる場合があります。これは多すぎます。

正しく使用していますか?その接続待ち時間が私のパフォーマンスを殺しています。

+0

pgbouncerへの接続を確立するのに100msかかることはありません。プール内にアイドル状態の接続がない場合を除きます。接続を適切にクローズ(つまり解放)していることを確認すると、PostgreSQLのログにも何が起きているのかを知ることができます。 –

+0

注:私はpgbouncerが同じマシン上で実行されているか、あなたのアプリに非常に近いと仮定しています... –

答えて

0

私はネットワーク内の別のサーバからpgbouncerに接続しようとしましたが、それは8〜22ミリ秒かかりました。私は仮定している、それはいくつかのネットワークの問題です。