1
Django:CONN_MAX_AGEは接続を維持しますが、PostgreSQLでそれらを再利用しません
Ubuntu 14.04 LTSでDjango 1.6.7とPostgres 9.3を使用しているdjangoセットアップを持っています。 いつでも、サイトはPostgreSQLデータベースへの約250の同時接続を取得します。これは2.5GHzのQuad Core Xeon E5-2670であり、16GBのRAMがあります。その特定のマシンの1日の平均負荷は20〜30です。 データベースへの接続がタイムアウトすることについて、セントリーでメールを受け取ることがあります。何らかの種類の接続プーリングを有効にすると、この問題を軽減し、データベースの負荷を少し下げることができます。 Django 1.6を使用しているため、組み込みのプーリングを利用できます。ただし、CONN_MAX_AGEを10秒、または60秒に設定すると、同時接続の数はすぐに最大許容設定(通常は約2倍)にジャンプし、接続は拒否され始めます。 だから、それがこれまでどのような理由のために表示され、接続がARE持続、しかし、彼らは行われていません再利用されます。 この原因は何でしょうか? PS。また、-worker-class = eventletでgunicornを使用しています。おそらくこれが私たちの災いの源ですか?