ab ist fehlerhaft mit apr_socket_recv: Verbindung abgelehnt (61)


79

Ich teste das Eventlet und erhalte folgende Fehlermeldung:

~>ab -n 10 -c 1 http://localhost:8090/
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 localhost (be patient)...apr_socket_recv: Connection reset by peer (54)
Total of 2 requests completed

Die Website funktioniert bei localhost: 8090 / und gibt 200 OK zurück.

Ich hatte das gleiche Problem mit Tomcat, wieder funktionierte die Website gut.

Was könnte das Problem sein?


1
Könnte dies ein IPv6-Problem sein, bei dem versucht wird, localhost zu übersetzen und zuerst :: 1 zu verwenden, was fehlschlägt?
Jürgen Strobel

Könnte dies ein Firewall-Problem sein? Oder verwenden Sie Proxy?
Utapyngo

Wenn Sie diesen Fehler erhalten, wenn Sie abunter macOS ~ 16.000 Anfragen gestellt haben, finden Sie eine Erklärung unter : stackoverflow.com/a/30357879/537554 und unter serverfault.com/a/145937/91715 eine Lösung.
Ryenus

Antworten:


179

Ich fand, dass die Verwendung von 127.0.0.1 anstelle von localhost funktioniert hat:

ab -n 10 -c 1 http://127.0.0.1:8090/

Update: Möglicherweise war ein Fehler in ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ


2
Hallo, nicht für mich, ich bekomme den gleichen Fehler. Läufst du Löwe? es hat gut funktioniert für mich b4 upgraden.
Blankman

2
Mein Fehler war etwas anders als Sie - aber ja, ich bin auf Lion. Sieht aus wie ein Fehler bei Lion: groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ
dkam

1
Es ist ein Ab-Bug, muss Apache patchen und einen neuen Ab erstellen. Siehe die Schritte unten pls. stackoverflow.com/a/8825278/47441
Sun Liwen

Gleiches gilt für Mountain Lion, es hat Version 2.3 von ab.
Arne

Ich werde den Parallelitätsparameter reduzieren, der für mich funktioniert hat
Deepak

12

Der Apache der neuen Version hat das Problem behoben. Müssen nur ab neu aufbauen.

Versuchen Sie, das neueste Paket von http://archive.apache.org/dist/ herunterzuladen.

Müssen Apache patchen und einen neuen ab erstellen.

$ wget http://archive.apache.org/dist/httpd/httpd-2.3.16-beta.tar.bz2
$ tar jxvf httpd-2.3.16-beta.tar.bz2 
$ cd httpd-2.3.16-beta
$ ./configure

Müssen nur ab erstellen, die sich im Support-Ordner befinden.

$ cd support
$ make
...
$ ./ab -n 10 -c 1 http://localhost:8090/

Wenn Ihr Apache sehr alt ist, patchen Sie ihn und erstellen Sie ihn wie oben beschrieben.

$ wget https://www.rtfm.ro/download/patches/ab.patch --no-check-certificate
$ patch -p0 < ./ab.patch

Erledigt.


Stellen Sie sicher, dass Sie / ab to / usr / sbin unterstützen (oder wo immer dies durch 'which ab' bestimmt wird
Sunil Gowda,

8

Fügen Sie die -rOption hinzu, die bedeutet, dass beim Beenden des Sockets keine Fehler auftreten. Manchmal können Sie den Standardwert für die maximale Größe ändern. ab -r -n 10 -c 1 http://localhost:8090/


1

Ein weiterer verwandter Fehler , der in ab( apache-2.4.29) noch vorhanden ist, besteht darin, dass nur das erste Ergebnis von übernommen wird getaddrinfo. Es ist wahrscheinlich dieser Fehler, der von Jürgen Strobel in einem Kommentar erwähnt wird . Nehmen wir an, Sie haben /etc/hostsdas so:

127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost

Das erste von getaddrinfofor zurückgegebene Ergebnis localhostist ::1. So abversucht über IPv6 zu verbinden und schlägt fehl. Die Problemumgehung besteht darin, Folgendes zu verwenden 127.0.0.1: ab -n 10 127.0.0.1/. Oder ordnen Sie die Zeilen neu. In meinem Fall heißt es jedoch:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)

0

Es gibt einen Patch für diesen Fehler. Ich habe die Schritte dieses Handbuchs befolgt und es scheint jetzt in Lion für mich zu funktionieren.

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.