1

で実行して呼び出されるPHPアプリケーションがあります。ページ A は、メッセージといくつかの情報を受け取ります。ページBはルーティングを行います。ページ C は、CURL を使用して外部アプリケーションを呼び出します。実稼働時には、1 か月あたり最大 100 万から 200 万のリクエストを受け取ります。GET parametersPG and nginx

私の質問は pg_pconnect 関数に関するものです。別の場所からの呼び出しがある場合、接続は再利用されますか? つまり、単純な接続を作成して、ページ A を毎回閉じる方がよいのでしょうか。(異なる場所のサーバーが私のアプリを呼び出します) ページ B と C の場合、スクリプトは無限ループでそれらを呼び出します (処理するメッセージがない場合は 10 秒待機します)。リクエストは常に同じ場所から来るので、ページ B と C に固定接続を使用する価値はありますか?

私の説明が十分に明確であることを願っています。

ありがとう!

4

1 に答える 1

1

一般的に、あなたの場合、永続的な接続からいくつかの利点が得られる可能性が高いと思います。欠点もありますが、これらを念頭に置いている限り、これらは管理可能です。ただし、さらに進んで、実際の接続プーラーを検討することもできます。

大きな問題は、通常、同時接続が CPU コアあたり約 2 未満、ディスク スピンドルあたり 1 未満の場合 (I/O 待機時間のため)、PostgreSQL が最適に機能することです。もちろん、これは正確ではありませんが、ハードウェアとリソースが何を期待するかを考えればわかります。

Linux/UNIX プラットフォームでは、接続の開始/破棄のオーバーヘッドはそれほど大きくありませんが、高速で実行し続けるには、同時実行の管理が重要になる場合があります。そのため、永続的な接続から始めて、追加の制御が必要な場合は接続プーラーに移行しました。

主な欠点は、他のユーザーがデータベースに接続しているときに実行できない特定のデータベース操作があることです。バックアップから復元する必要がある場合は、最初に Web アプリを切断する必要がある場合があります。

于 2013-05-24T02:46:28.630 に答える