.png)
最近、nginx 1.0.8 にアップデートし、キャッシュされた動的ページ (最初は proxy_pass 経由で Django アプリによって提供) と静的ページのパフォーマンスをベンチマークしてみました。どちらの場合も、nginx は 3 つまたは 4 つを超えるリクエストは処理しないため (同時接続がない場合でも)、ab はほぼすぐに次のレポートを出力します。
apr_socket_recv: Connection reset by peer (54)
最大 4 つ (またはそれ以下) のリクエストを選択した場合のみ、ab は正常に終了します。
それはなぜでしょうか? ワーカー プロセスの数を増やしてみましたが (うまくいきませんでした)、nginx は設定変数を微調整しなくても 4 つ以上のリクエストを処理できるはずです。誤って何らかの DOS 保護メカニズムを起動してしまったのでしょうか?
答え1
ab
シンプルな Node.JS アプリに対してローカルでテストを実行すると、同じ問題が発生しました。私が見つけた回避策はab -r
、オプション that indicate を使用することですDon't exit on socket receive errors
。
しかし、このエラーの根本的な原因は、ボックス内でオープンできるソケットの数が限られていることです。OSx を使用している場合は、この回答を参照して、この制限に高い数値を設定できます。