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?


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


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


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.


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/


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)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.