gevents python apachebench eventlet

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?



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/