ab tiene un error con apr_socket_recv: conexión rechazada (61)

79

Estoy probando eventlet y recibo este error:

~>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

El sitio web funciona en localhost: 8090 / y devuelve 200 OK.

Tuve el mismo problema con Tomcat, nuevamente, el sitio web funcionó bien.

¿Cuál podría ser el problema?

Blankman
fuente
1
¿Podría ser esto un problema de ipv6, ab tratando de traducir localhost y usar :: 1 primero y fallando?
Jürgen Strobel
¿Podría ser esto un problema de firewall? ¿O tal vez estás usando un proxy?
utapyngo
Si recibe este error cuando abha realizado ~ 16k solicitudes, en macOS, consulte esto: stackoverflow.com/a/30357879/537554 para obtener una explicación y serverfault.com/a/145937/91715 para una solución.
ryenus

Respuestas:

179

Descubrí que usar 127.0.0.1 en lugar de localhost funcionó:

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

Actualización: puede haber sido un error en ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ

dkam
fuente
2
hola, no para mi, me sale el mismo error. ¿Estás corriendo león? funcionó bien para mí la actualización b4.
Blankman
2
Mi error fue ligeramente diferente al tuyo, pero sí, estoy en Lion. Parece un error de ab en Lion: groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ
dkam
1
Es un error de ab, tengo que parchear apache y construir un nuevo ab. Consulte los pasos a continuación por favor. stackoverflow.com/a/8825278/47441
Sun Liwen
Lo mismo ocurre con Mountain Lion, tiene la versión 2.3 de ab.
Arne
Deepak
12

Apache de la nueva versión ha solucionado el problema. Solo hay que reconstruir ab.

Intente descargar el paquete más reciente de http://archive.apache.org/dist/

Tienes que parchear apache y construir un nuevo ab.

$ 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

Solo tienes que construir ab, que se encuentra en la carpeta de soporte.

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

Si su apache es muy antiguo, entonces parchee y compile como arriba.

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

Hecho.

Sun Liwen
fuente
Asegúrese de cp support / ab a / usr / sbin (o donde lo determine 'which ab'
Sunil Gowda
8

agregue la -ropción que significa No salir al recibir errores de socket. En ocasiones, puede cambiar el valor de tamaño de ulimit predeterminado. ab -r -n 10 -c 1 http://localhost:8090/

Fan Yer
fuente
1

Otro error relacionado que todavía está presente en ab( apache-2.4.29) es que solo toma el primer resultado de getaddrinfo. Probablemente sea este error el que menciona Jürgen Strobel en un comentario . Digamos que tienes /etc/hostsque dice así:

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

El primer resultado devuelto por getaddrinfopara localhostdecir ::1. Entonces abintenta conectarse a través de IPv6 y falla. La solución consiste en utilizar 127.0.0.1: ab -n 10 127.0.0.1/. O reordenar las líneas. Aunque, en mi caso dice:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)
x-yuri
fuente
0

Hay un parche para este error, seguí los pasos de esta guía y parece que me funciona ahora en Lion.

bithavoc
fuente