Discussion:
[pyar] aiohttp
Mauricio Baeza Servin
2018-05-23 02:08:50 UTC
Permalink
Hola a todos...

Estoy probando el código mostrado en este artículo:
https://www.artificialworlds.net/blog/2017/06/12/making-100-million-requests-with-python-aiohttp/

Todo funciona bien, excepto en los tiempos, según la página, 1 millon de request los hace en 25 minutos, en mi equipo los hace como en 4 horas.

Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.

¿Estoy omitiendo algo?


Gracias


Mauricio


-----
Todo lo que no es dado es perdido - André Guide
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de S
Javier Marcon
2018-05-23 02:54:57 UTC
Permalink
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-100-million-requests-with-python-aiohttp/
Todo funciona bien, excepto en los tiempos, según la página, 1 millon de request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
¿Estoy omitiendo algo?
Gracias
Mauricio
Sin ver el código que estás ejecutando, lo mas probable es que la
diferencia de tiempo pase por la latencia y el ancho de banda de la
conexión que estés usando, mas que por el uso de cpu y de memoria. Sobre
todo si el script limita a un número de requests simultáneos para hacer
y no hace nuevos requests si no terminaron los anteriores.

Saludos,

Javier.
--
Eco red Natural.
Venta de productos orgánicos, agroecológicos y BPA.
4742-1581 / 156-424-0748
***@gmail.com

_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Softw
Mauricio Baeza Servin
2018-05-23 03:13:56 UTC
Permalink
Post by Javier Marcon
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-100-million-requests-with-python-aiohttp/
Todo funciona bien, excepto en los tiempos, según la página, 1 millon de request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
¿Estoy omitiendo algo?
Gracias
Mauricio
Sin ver el código que estás ejecutando, lo mas probable es que la
diferencia de tiempo pase por la latencia y el ancho de banda de la
conexión que estés usando, mas que por el uso de cpu y de memoria. Sobre
todo si el script limita a un número de requests simultáneos para hacer
y no hace nuevos requests si no terminaron los anteriores.
Saludos,
Javier.
Gracias por tu respuesta Javier...

No lo puse por que como menciono, es el mismo código mostrado en el artículo, incluyendo el servidor de pruebas mostrado en el mismo, todo es "local"... si miras el código, la latencia se simula con un sleep de 0 a 3 segundos de forma aleatoria.


Saludos


_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
Carlos Miguel FARIAS
2018-05-23 17:41:10 UTC
Permalink
Si es una simulación, pregunto, cuantas corridas efectuaste?. La generación
de números aleatorios estadísticamente debería dar 1,5", pero no quita que
circunstancialmente el feed de la función produzca una cadena de dormidas
tal que justo altere tu caso en particular.
Saludos: Miguel, Santa Rosa (LP)
Post by Mauricio Baeza Servin
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-
100-million-requests-with-python-aiohttp/
Post by Mauricio Baeza Servin
Todo funciona bien, excepto en los tiempos, según la página, 1 millon
de request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Post by Mauricio Baeza Servin
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso
del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
Post by Mauricio Baeza Servin
¿Estoy omitiendo algo?
Gracias
Mauricio
Sin ver el código que estás ejecutando, lo mas probable es que la
diferencia de tiempo pase por la latencia y el ancho de banda de la
conexión que estés usando, mas que por el uso de cpu y de memoria. Sobre
todo si el script limita a un número de requests simultáneos para hacer
y no hace nuevos requests si no terminaron los anteriores.
Saludos,
Javier.
Gracias por tu respuesta Javier...
No lo puse por que como menciono, es el mismo código mostrado en el
artículo, incluyendo el servidor de pruebas mostrado en el mismo, todo es
"local"... si miras el código, la latencia se simula con un sleep de 0 a 3
segundos de forma aleatoria.
Saludos
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Mauricio Baeza Servin
2018-05-23 17:53:08 UTC
Permalink
Si es una simulación, pregunto, cuantas corridas efectuaste?. La generación
de números aleatorios estadísticamente debería dar 1,5", pero no quita que
circunstancialmente el feed de la función produzca una cadena de dormidas
tal que justo altere tu caso en particular.
Saludos: Miguel, Santa Rosa (LP)
Post by Mauricio Baeza Servin
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-
100-million-requests-with-python-aiohttp/
Post by Mauricio Baeza Servin
Todo funciona bien, excepto en los tiempos, según la página, 1 millon
de request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Post by Mauricio Baeza Servin
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso
del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
Post by Mauricio Baeza Servin
¿Estoy omitiendo algo?
Hola Carlos...

Al menos unas 20 con un valor de 100,000 que siempre tarda alrededor de 25 minutos, lo que deberían ser para el millón, no creo que sea el caso lo que mencionas, creo que el problema va por la cantidad de solicitudes que hace por segundo, lo cual no se por donde ver para mejorarlo.

Gracias por tu respuesta.
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http:
Carlos Miguel FARIAS
2018-05-23 19:22:22 UTC
Permalink
Estas seguro que estás emulando fehacientemente el entorno de trabajo donde
se hizo la prueba de referencia (25' para el millón)?.
Recuerdo que en varias oportunidades, corridas que se ponían lentas con un
simple cambio de entorno de trabajo los tiempos de ejecución se cambiaban
sustancialmente.
Una vez, con cambiar los buffers de I/O los tiempos se reducian hasta 10
veces. O en un caso extremo, simplemente defragmentando el disco paso algo
similar.
En otro caso, teníamos problemas con el tiempo de respuesta (en un entorno
local) y resulto que el servidor, estaba atendiendo servicios que no nos
habíamos percato en primer instancia.
Saludos: Miguel
On Wed, 23 May 2018 14:41:10 -0300, Carlos Miguel FARIAS <
Post by Carlos Miguel FARIAS
Si es una simulación, pregunto, cuantas corridas efectuaste?. La
generación
Post by Carlos Miguel FARIAS
de números aleatorios estadísticamente debería dar 1,5", pero no quita
que
Post by Carlos Miguel FARIAS
circunstancialmente el feed de la función produzca una cadena de dormidas
tal que justo altere tu caso en particular.
Saludos: Miguel, Santa Rosa (LP)
On Tue, 22 May 2018 23:54:57 -0300, Javier Marcon <
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-
100-million-requests-with-python-aiohttp/
Post by Mauricio Baeza Servin
Todo funciona bien, excepto en los tiempos, según la página, 1
millon
Post by Carlos Miguel FARIAS
de request los hace en 25 minutos, en mi equipo los hace como en 4
horas.
Post by Carlos Miguel FARIAS
Post by Mauricio Baeza Servin
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el
uso
Post by Carlos Miguel FARIAS
del CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
Post by Mauricio Baeza Servin
¿Estoy omitiendo algo?
Hola Carlos...
Al menos unas 20 con un valor de 100,000 que siempre tarda alrededor de 25
minutos, lo que deberían ser para el millón, no creo que sea el caso lo que
mencionas, creo que el problema va por la cantidad de solicitudes que hace
por segundo, lo cual no se por donde ver para mejorarlo.
Gracias por tu respuesta.
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Mauricio Baeza Servin
2018-05-23 20:19:45 UTC
Permalink
Estas seguro que estás emulando fehacientemente el entorno de trabajo donde
se hizo la prueba de referencia (25' para el millón)?.
Recuerdo que en varias oportunidades, corridas que se ponían lentas con un
simple cambio de entorno de trabajo los tiempos de ejecución se cambiaban
sustancialmente.
Una vez, con cambiar los buffers de I/O los tiempos se reducian hasta 10
veces. O en un caso extremo, simplemente defragmentando el disco paso algo
similar.
En otro caso, teníamos problemas con el tiempo de respuesta (en un entorno
local) y resulto que el servidor, estaba atendiendo servicios que no nos
habíamos percato en primer instancia.
Saludos: Miguel
El autor no especifica mucho de su entorno de trabajo, pero tienes razón, voy a probar en diferentes entornos y equipos para ver donde anda la diferencia.


Saludos
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de S
Juan Carlos
2018-05-23 23:39:27 UTC
Permalink
Post by Mauricio Baeza Servin
¿Estoy omitiendo algo?
Hola; Tal vez simplemente le estas pegando a algo del limits.conf (?)
:)
Mauricio Baeza Servin
2018-05-23 23:50:00 UTC
Permalink
Post by Juan Carlos
Post by Mauricio Baeza Servin
¿Estoy omitiendo algo?
Hola; Tal vez simplemente le estas pegando a algo del limits.conf (?)
:)
Hola Juan Carlos...

¿Hay algún valor de este archivo que infiera en este tema?, en este archivo tengo:

@mau soft nofile 10240
@mau hard nofile 10240


Saludos
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuario
Sebastián Seba
2018-05-24 14:29:17 UTC
Permalink
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-
100-million-requests-with-python-aiohttp/
Todo funciona bien, excepto en los tiempos, según la página, 1 millon de
request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso del
CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
¿Estoy omitiendo algo?
Gracias
Mauricio
De cierta manera relacionada que ahora no recuerdo, me recuerda a un post
en el blog de Cloudflare [0] donde se tuvo que cambiar con "ulimit" [1][2]
el valor por defecto del kernel (Linux) dado que por defecto tiene un valor
pequeño. Dale un vistazo al siguiente hilo [3] por si te ayuda.

¡Saludos!

[0] https://blog.cloudflare.com/epbf_sockets_hop_distance/
[1] https://linux.die.net/man/3/ulimit
[2] https://wiki.archlinux.org/index.php/Limits.conf
[3]
https://stackoverflow.com/questions/33773237/open-more-server-sockets-than-in-ulimit-n
--
Sebastián J. Seba (ssebastianj)
Ingeniero en Sistemas de Información
Mauricio Baeza Servin
2018-05-25 02:49:31 UTC
Permalink
Post by Sebastián Seba
Post by Mauricio Baeza Servin
Hola a todos...
https://www.artificialworlds.net/blog/2017/06/12/making-
100-million-requests-with-python-aiohttp/
Todo funciona bien, excepto en los tiempos, según la página, 1 millon de
request los hace en 25 minutos, en mi equipo los hace como en 4 horas.
Tengo Py 3.6 y un procesador de 8 nucleos en ArchLinux, aunque el uso del
CPU no pasa de 2% y la memoria no pasa de 3 GB, tengo 16 GB.
¿Estoy omitiendo algo?
Gracias
Mauricio
De cierta manera relacionada que ahora no recuerdo, me recuerda a un post
en el blog de Cloudflare [0] donde se tuvo que cambiar con "ulimit" [1][2]
el valor por defecto del kernel (Linux) dado que por defecto tiene un valor
pequeño. Dale un vistazo al siguiente hilo [3] por si te ayuda.
¡Saludos!
[0] https://blog.cloudflare.com/epbf_sockets_hop_distance/
[1] https://linux.die.net/man/3/ulimit
[2] https://wiki.archlinux.org/index.php/Limits.conf
[3]
https://stackoverflow.com/questions/33773237/open-more-server-sockets-than-in-ulimit-n
Hola Sebastian... gracias por tu respuesta...

De hecho, sem = asyncio.Semaphore(1000) es para evitar el problema de "ulimit", aún así he probado con diferentes valores sin exito, voy a intentar preguntar (en mi ingles champurrado) al autor del post por su entorno.

Saludos

_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla
Loading...