Experiencias con boost::asio

25 views
Skip to first unread message

Alejandro Santos

unread,
Dec 4, 2013, 8:27:06 AM12/4/13
to cp...@googlegroups.com
Hola,

Hace un par de dias que estoy haciendo un experimento con boost::asio
(un pequeño servidor http) y me topé con este mismo problema de
eficiencia:

http://stackoverflow.com/q/1234750/209629

Después de ver esto hice la misma prueba con libevent, donde puedo ver
que asio (en mi pc local) acepta hasta ~9900 nuevas conexiones por
segundo, mientras que libevent acepta ~22000 nuevas conexiones por
segundo. Como referencia, lighttpd acepta cerca de ~23000 conexiones
por segundo.

¿Alguien tuvo una experiencia parecida con asio? Me interesa aceptar
la mayor cantidad de conexiones TCP nuevas por segundo.

--
Alejandro Santos

Hernán Leoni

unread,
Dec 4, 2013, 3:17:44 PM12/4/13
to cp...@googlegroups.com
hola,

la verdad no usé asio, pero según este comentario del post "boost::asio is not as thread-friendly as you would hope" es real por ahí te conviene levantar varias instancias en diferentes puertos y poner un balancer, apache debería servir para esto. no se si eso te sirve, depende de como esté hecha la aplicación, si son servicios rest no debería ser un problema tener varias instancias.
he visto con frecuencia que se usen varias instancias de la misma aplicación corriendo juntas para aprovechar más los cores también.
igualmente una consulta, por ahi para imaginarme mejor el caso, cual es throughput que lográs? y cual es el tiempo de respuesta que tenés con ese throughput? tenés mas o menos idea de la cantidad de data que se transfiere como respuesta?

un saludo
hernán




--
--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+un...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Billy Biset

unread,
Dec 4, 2013, 3:28:47 PM12/4/13
to cp...@googlegroups.com
Yo usé boost::asio pero no te puedo ayudar con el balancing o performance. Escribí (y se extendió un poco con ayuda de otra gente) una lib para hacer apps cliente/servidor https://code.google.com/p/ana-net/ . El diseño no está bueno pero se pueden sacar varios snippets de código sobre las operaciones en asio https://code.google.com/p/ana-net/source/browse/#svn%2Ftrunk%2Fsrc%2Fasio

El load testing que hice fué bastante rudimentario y nada q ver con lo que necesitás. Por lo que leo te toca
0- Verificar que tu código (uso de asio) no es lo que está limitando el uso de recursos
1- Si no pasa por 0, mejorar la implementación de boost::asio o usar otra lib

Creo que mis 2 centavos fueron mas o menos centavo y medio



2013/12/4 Hernán Leoni <leoni....@gmail.com>
Reply all
Reply to author
Forward
0 new messages