最近nginx1.0.8にアップデートし、キャッシュされた動的ページ(最初はproxy_pass経由でDjango app)によって提供されます)と静的ページのパフォーマンスをベンチマークしようとしました。どちらの場合も、nginxはそれ以上提供されません3つまたは4つのリクエストよりも(同時接続がなくても)、abはほぼ即座に次のように報告します。
apr_socket_recv: Connection reset by peer (54)
Abが正常に終了するのは、最大4つ(またはそれ以下)の要求を選択した場合のみです。
何故ですか?ワーカープロセスの数を増やしてみましたが(運が悪い)、nginxは構成変数を調整せずに4つ以上のリクエストを処理できるはずだと思います。ある種のDOS保護メカニズムを誤ってトリガーした可能性がありますか?
単純なNode.JSアプリに対してローカルテストを実行しているab
で同じ問題を実行していました。私が見つけた回避策は、ab -r
を示すDon't exit on socket receive errors
オプションを使用することでした。
しかし、このエラーの根本的な原因は、ボックスに入れることができるオープンソケットの数が限られていることです。 OSxを使用している場合は、この回答を参照して、この制限に高い数値を設定できます。