OS XでのApacheベンチテストエラー:「apr_socket_recv:接続がピアによってリセットされました(54)」


55

数週間前にMacBook Pro 13 "をLionにアップデートしました。ApacheBench(apache2.2.19)が機能していないことがわかりました。

apr_socket_recv:ピアによる接続のリセット(54)

また、Mac Miniでクリーンインストールを実行したところ、同じエラーが発生しました。

どうすれば修正できますか?


私もこれらを取得しています。小さなGo Webサーバーをテストしているときに、Python Geventサーバーを使用して取得しています。
ジャスティン

回答:


65

-rApache Benchで使用する場合、エラーで終了しないことに注意してください。

ドキュメントから:

-r
ソケット受信エラーで終了しないでください。


11
それは間違っていることを除いてすべきです 私はちょうど実行しようとしました:ab -n 200 -c 20 -r http://localhostそして、得た(コメントを禁止する改行がある!) Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
umassthrower

3
残念ながら、まだ終了しています
-DataGreed

OS X 10.9で私のために働いた
ウィレム14

47

これは、LionにバンドルされているApacheソフトウェアのバグが原因です。Apache(ベータ版)のより新しいバージョンが問題を修正します。abを修正する手順は次のとおりです。

  1. Apacheの最新バージョンをダウンロードする

    $ wget http://apache.mirrors.pair.com//httpd/httpd-2.3.16-beta.tar.bz2
    

2.3.16が利用できない場合は、http: //apache.mirrors.pair.com/httpdにアクセスして最新版を入手してください

  1. pcreをインストールします(これにはbrewが必要です)

    $ brew install pcre
    
  2. Apacheをビルドする

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. 既存のabを新しく作成したabで上書きします

    $ sudo cp support/ab /usr/sbin
    

私がmakehttpを取得するとき:未定義のシンボル:「_apr_file_link」、参照先:rotatelogs.oの_post_rotate ld:シンボルが見つかりませんcollect2:ldが戻りました1終了ステータスmake [2]:*** [rotatelogs]エラー1 make [1]:*** [all-recursive]エラー1 make:*** [all-recursive]エラー1それを解決するヒントはありますか?
ジョナサン

これはまだOSX 10.8.2の問題ですか?
クリスワグナー

3
node.js helloworldアプリのベンチマークを行っています。最初、私はベンチマークのConnection reset by peer (54)ためにを受け取っていましたab。次に、上記の修正を行った後、行うことができますab -n 100 -c 100。それから私はできるab -n 200 -c 100。私ができるab -n 200 -c 150...私が-c上記を取るとき-c 200、それが実行され、時々Connection Reset by Peer (54)エラーをスローすることがあります。それは非決定論的です。何をすべきか?
ラキブ

3
実行している場合は./configure、あなたがに実行する場合、この記事を見てみましょうconfigure: error: C compiler cannot create executablesstackoverflow.com/a/11712497/599391
Chiubaka

5

このリンクでhomebrewを使用してabを更新する方法を使用するとうまくいきました。

brew install 'https://raw.github.com/simonair/homebrew-dupes/e5177ef4fc82ae5246842e5a544124722c9e975b/ab.rb'
brew test ab

2
スーパーユーザーへようこそ!これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
slhck

私が取得しています:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
ベンジャミン・クルージエ

@pinouchonは、スクリプトの作成者によるメンテナンスが終了しましたが、ここに新しい作業リンクがあります:raw.githubusercontent.com/simonair/homebrew-dupes/…(type:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

エラー:ab:Formulary :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab:Class @ Matt3o12の未定義メソッド `sha1 '
Mark Ramotowski

4

127.0.0.1localhostの代わりに:を使用してみましたか?

また、URLをhttp://前に記述しないと、abが失敗します。


2

Mountain Lion ab v2.3でも同じエラーが発生し、上記の回答のいずれかで指示されたように、brewとabの最新バージョンをインストールする準備がほぼ整いました。最終的にそのようにする前に、最後のスラッシュを追加してみました。

user$ ab http://dl.cubrid.org
ab: invalid URL
Usage: ab [options] [http[s]://]hostname[:port]/path

上記のメッセージでは、入力URLの必要な形式に注意してください。オプションのコンポーネントには角かっこが付いていますが、/ path部分オプションではないようです。そのため、ルートドメインをテストする場合は、少なくとも末尾のスラッシュを追加する必要があると想定しました。これもあなたのお役に立てば幸いです。

user$ ab dl.cubrid.org/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking dl.cubrid.org (be patient).....done


Server Software:        
Server Hostname:        dl.cubrid.org
Server Port:            80

Document Path:          /
Document Length:        13437 bytes

Concurrency Level:      1
Time taken for tests:   0.863 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      13606 bytes
HTML transferred:       13437 bytes
Requests per second:    1.16 [#/sec] (mean)
Time per request:       862.778 [ms] (mean)
Time per request:       862.778 [ms] (mean, across all concurrent requests)
Transfer rate:          15.40 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      207  207   0.0    207     207
Processing:   655  655   0.0    655     655
Waiting:      234  234   0.0    234     234
Total:        862  862   0.0    862     862

0

テストするいくつかのこと:

  • ファイアウォールを無効にしてみて、それが機能するかどうか確認してください。
  • Web共有を有効にし、localhost /をテストします(最初にブラウザーで動作することを確認してください)

これらの作業のいずれも端末を開くことができない場合、

$ sudo opensnoop

次に、Apacheベンチを実行し、問題のopensnoopターミナルの出力を投稿します。それでもうまくいかない場合は、macportsをインストールしてからそこからapacheをインストールし、それが回避策として機能するかどうかを確認してください(ラメの一種)。

私のAirはライオン上にありますが、Apacheのバージョンは異なります(最近アップデートがありました、あなたはすでにそれをインストールしましたか?)私はabが私のために働くことを確認することができました:

$ ab -V
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
$ uname -a
Darwin air.local 11.1.0 Darwin Kernel Version 11.1.0: Tue Jul 26 16:07:11 PDT 2011; root:xnu-1699.22.81~1/RELEASE_X86_64 x86_64
$ ab google.com/ 
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking google.com (be patient).....done


Server Software:        gws
Server Hostname:        google.com
Server Port:            80

Document Path:          /
Document Length:        219 bytes

Concurrency Level:      1
Time taken for tests:   4.130 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Non-2xx responses:      1
Total transferred:      511 bytes
HTML transferred:       219 bytes
Requests per second:    0.24 [#/sec] (mean)
Time per request:       4130.343 [ms] (mean)
Time per request:       4130.343 [ms] (mean, across all concurrent requests)
Transfer rate:          0.12 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:     4119 4119   0.0   4119    4119
Processing:    11   11   0.0     11      11
Waiting:       11   11   0.0     11      11
Total:       4130 4130   0.0   4130    4130

返信@polynomialをありがとう:) ab google.com/私のためにも動作します、試してくださいab -n 1000 -c 1000 google.com/
ベン

@ben同様の問題があることを覚えていますが、http://を追加することで解決したことを覚えていますか?私は今Windowsマシンにいます。家に帰ったらチェックします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.