Apache Bench-Testfehler unter OS X: "apr_socket_recv: Verbindung von Peer (54) zurückgesetzt"


55

Ich habe mein MacBook Pro 13 "vor ein paar Wochen auf Lion aktualisiert. Ich habe gerade herausgefunden, dass Apache Bench (apache2.2.19) nicht funktioniert. Es wird immer dieser Fehler angezeigt, egal was passiert:

apr_socket_recv: Verbindung von Peer zurückgesetzt (54)

Ich habe auch eine Neuinstallation auf meinem Mac Mini durchgeführt und es ist derselbe Fehler aufgetreten.

Wie kann ich das beheben?


Ich bekomme diese auch .. Ich bekomme sie beim Testen eines kleinen Go-Webservers und mit einem Python Gevent-Server.
Justin

Antworten:


65

Beachten Sie, dass -rApache Bench bei Verwendung nicht bei Fehlern beendet wird.

Aus der Dokumentation :

-r
Beenden Sie nicht auf Socket Empfangsfehler.


11
Es sollte außer es ist falsch. Ich habe gerade versucht zu rennen: ab -n 200 -c 20 -r http://localhostund bekam (Gott verbiete einen Kommentar, habe Zeilenumbrüche!) Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
umassthrower

3
Leider gibt es immer noch
DataGreed

Arbeitete für mich unter OS X 10.9
Willem

47

Dies liegt an einem Fehler in der mit Lion gelieferten Apache-Software. Eine neuere Version von Apache (Beta) behebt das Problem. Ab zu beheben, sind hier die Schritte:

  1. Laden Sie die neueste Version von Apache herunter

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

Wenn 2.3.16 nicht verfügbar ist, rufen Sie http://apache.mirrors.pair.com/httpd auf und laden Sie die neueste Version herunter

  1. Installiere pcre (du brauchst dafür ein Gebräu)

    $ brew install pcre
    
  2. Erstellen Sie Apache

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Überschreiben Sie den vorhandenen ab mit dem neu erstellten

    $ sudo cp support/ab /usr/sbin
    

Wenn ich makehttp erhalte, erhalte ich: Undefinierte Symbole: "_apr_file_link", referenziert von: _post_rotate in rotatelogs.o ld: Symbol (e) nicht gefunden collect2: ld hat 1 Exit-Status zurückgegeben make [2]: *** [rotatelogs] Fehler 1 make [1]: *** [rekursiv] Fehler 1 make: *** [rekursiv] Fehler 1 Irgendwelche Tipps, wie man das löst?
Jonathan

Ist dies immer noch ein Problem in OSX 10.8.2?
Chris Wagner

3
Ich vergleiche eine node.js helloworld App. Zuerst erhielt ich eine Connection reset by peer (54)für ein abBenchmarking. Nachdem ich das oben beschriebene Problem behoben hatte, konnte ich es tun ab -n 100 -c 100. Dann könnte ich tun ab -n 200 -c 100. Ich könnte tun ab -n 200 -c 150... Wenn ich -coben -c 200nehme, wird es manchmal ausgeführt und manchmal wird ein Connection Reset by Peer (54)Fehler ausgegeben . Es ist nicht deterministisch. Was ist zu tun?
Rakib

3
Werfen./configure Sie beim Laufen einen Blick auf diesen Beitrag, wenn Sie auf Folgendesconfigure: error: C compiler cannot create executables
stoßen

5

Die Methode, ab über Homebrew unter diesem Link zu aktualisieren, hat bei mir funktioniert.

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

2
Willkommen bei Super User! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Slhck

Ich bekomme:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Benjamin Crouzier

@pinouchon, obwohl das Skript jetzt länger vom Autor gepflegt wird, ist hier ein neuer, funktionierender Link: raw.githubusercontent.com/simonair/homebrew-dupes/… (Typ:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

Fehler: ab: undefinierte Methode `sha1 'für Formulary :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Mark Ramotowski 20.10.18

4

Haben Sie versucht: 127.0.0.1anstelle von localhost zu verwenden?

Auch mein AB schlägt fehl, wenn ich keine URL mit http://vorne schreibe .


2

Ich hatte den gleichen Fehler mit Mountain Lion ab v2.3 und war fast bereit, Brew und die neueste Version von ab zu installieren, wie in einer der obigen Antworten angegeben. Bevor ich endlich so weitermachte, habe ich versucht , den abschließenden Schrägstrich einzufügen .

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

Achten Sie in der obigen Meldung auf das erforderliche Format der Eingabe-URL. Optionale Komponenten sind in eckigen Klammern angegeben. Beachten Sie jedoch, dass der / path- Teil nicht optional zu sein scheint . Also nahm ich an, dass ich, wenn ich die Root-Domain teste , zumindest den abschließenden Schrägstrich hinzufügen sollte , was wirklich den Trick getan hat! Ich hoffe das hilft dir auch.

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

Ein paar Dinge zum Testen:

  • Können Sie versuchen, die Firewall zu deaktivieren, um festzustellen, ob dies funktioniert?
  • Aktivieren Sie die Webfreigabe und testen Sie localhost / (stellen Sie sicher, dass es zuerst in einem Browser funktioniert)

Wenn keine dieser Arbeiten möglich ist, können Sie ein Terminal und öffnen

$ sudo opensnoop

dann starte die apache bench und poste die ausgabe des opensnoop terminals in der frage. Wenn nichts davon funktioniert, können Sie versuchen, Macports zu installieren und dann Apache von dort aus zu installieren, um zu sehen, ob dies als Problemumgehung funktioniert (irgendwie lahm).

My Air ist auf lion, aber die Apache-Version ist anders (vor kurzem gab es ein Update, haben Sie das bereits installiert?). Ich konnte überprüfen, ob ab für mich funktioniert:

$ 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

Danke für die Antwort @polynomial :) Funktioniert auch ab google.com/bei mir, versuchen Sieab -n 1000 -c 1000 google.com/
ben

@ben Ich erinnere mich, dass ich ein ähnliches Problem hatte und erinnere mich, dass es durch Hinzufügen von http: // behoben wurde. Ich bin jetzt auf Windows-Maschine, werde prüfen, wann ich nach Hause komme.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.