1

私は大きな問題を抱えています:)ストーリーは次のとおりです。1台のサーバーで2つのWebアプリを実行しています。それぞれがスーパーバイザーを介してuwsgiによって開始されました(nginxもあります)。1つのプロジェクト(app2)は、urllib2を介して他のプロジェクト(app1)にHTTPリクエストを送信します。siegeを開始すると(siege -d1 -r10 -c200 http://app1.mydomain.com/test)他のプロジェクト(app2)が応答しなくなり、そのapp2のすべてのuwsgiワーカーがビジー状態になります。平均時間app1は、「包囲」されていないようにブラウザから応答します。そして、すべての労働者はちょうど時間から忙しくなります。urllib2でその行を削除し、テストを開始すると、すべてのプロジェクトが良好に感じられます。アプリのUwsgi構成:

[uwsgi]
socket = /var/run/core/app1.sock
max-requests = 5000
listen = 2048
master = true
processes = 30
harakiri = 15
harakiri-verbose = 1
buffer-size = 65536
stats = /tmp/app1_stats.sock

それらは完全に同一です。また、HTTPリクエストを行うアプリを「包囲」していないことに注意してください。重要な場合はすべてFlaskで作成されています。ありがとうございました。

4

1 に答える 1

0

問題を解決しました。興味のある方:urllib3を使用してHTTPConnectionPool()を作成するだけです。

于 2013-02-18T16:03:12.730 に答える