39

Heroku のクラウド サーバーから AWS EC2 のデータベースに REST API を介して、何億ものアイテムをデータベースにアップロードしています。Python を使用していますが、ログに次の INFO ログ メッセージが常に表示されます。

[requests.packages.urllib3.connectionpool] [INFO] Resetting dropped connection: <hostname>

この「切断された接続のリセット」には、コードが再度実行されるまでに数秒 (場合によっては 30 秒以上) かかるようです。

  • まず、ここで正確に何が起こっているのか、そしてその理由は何ですか?
  • 次に、データをより速くアップロードできるように、接続の切断を止める方法はありますか?

ご協力いただきありがとうございます。アンドリュー。

4

3 に答える 3

13

問題は、クライアントが接続を維持するように要求したにもかかわらず、サーバーが接続を閉じたことです。

これは必ずしもサーバーがキープアライブをサポートしていないためではありませんが、接続で特定の数の要求のみを許可するようにサーバーが構成されている可能性があります。これは、異なるサーバーにリクエストを分散させるために行うことができますが、この方法は、サーバーで動作する不十分に記述されたコード (PHP など) に対する実用的な防御として一般的であると思います。リクエスト(おそらくエラー状態などによる)

これが当てはまると思われ、これらのログ (INFO レベルでログに記録されます) を表示したくない場合は、次を追加して、ログのその部分を静かにすることができます。

# Really don't need to hear about connections being brought up again after server has closed it
logging.getLogger("requests.packages.urllib3.connectionpool").setLevel(logging.WARNING)
于 2016-06-07T11:51:42.397 に答える