ab を使用して nginx をベンチマークする: ピアによる接続のリセット (54)

ab を使用して nginx をベンチマークする: ピアによる接続のリセット (54)

最近、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 を使用している場合は、この回答を参照して、この制限に高い数値を設定できます。

負荷テストのために OSX のソケットの制限を増やす方法

関連情報