python - gevents - ab está sacando un error con apr_socket_recv: conexión rechazada(61)
gevents python (5)
El apache de la nueva versión ha solucionado el problema. Solo tienes que reconstruir ab.
Intenta descargar el último paquete 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 tiene que crear ab, que se encuentra en la carpeta de soporte.
$ cd support
$ make
...
$ ./ab -n 10 -c 1 http://localhost:8090/
Si tu apache es muy antiguo, mézclalo y compila como se indica arriba.
$ wget https://www.rtfm.ro/download/patches/ab.patch --no-check-certificate
$ patch -p0 < ./ab.patch
Hecho.
Estoy probando eventlet y obtengo 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, de nuevo, el sitio web funcionó bien.
¿Cuál podría ser el problema?
Encontré 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
Hay un parche para este error, seguí los pasos de esta guía y parece funcionar para mí ahora en Lion.
Otro error relacionado que todavía está presente en ab
( apache-2.4.29
) es que solo toma el primer resultado de getaddrinfo
. Es probable que este error sea mencionado por Jürgen Strobel en un comment . Digamos que tiene /etc/hosts
que dice así:
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
El primer resultado devuelto por getaddrinfo
para localhost
es ::1
. Así que ab
intenta conectarse a través de IPv6 y falla. La solución alternativa es usar 127.0.0.1
: ab -n 10 127.0.0.1/
. O reordena las líneas. Aunque, en mi caso dice:
Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)
agregue la opción -r
que significa No salir de los recibos de socket. A veces puede cambiar el valor de tamaño de ulimit predeterminado. ab -r -n 10 -c 1 http://localhost:8090/