2010-04-19 26 views
6

Estoy desarrollando una aplicación para fines de evaluación comparativa, para la cual necesito crear una gran cantidad de conexiones http en poco tiempo, creé un programa en Java para probar cuántos hilos hay en Java para crear, resulta que en mi máquina de un solo núcleo de 2GB, el límite es variable entre 5000 y 6000 con 1 GB de memoria entregada a JVM, después de lo cual sale del detector de metales con el límite de pila alcanzado.cuánto solicitud HTTP simultánea puede manejar erlang

Se sugiere que erlang sea capaz de generar procesos mucho más concurrentes, estoy dispuesto a aprender erlang si es capaz de resolver el problema, puede erlang ser capaz de generar alrededor de 100000 procesos que son esencialmente solicitudes HTTP esperando para respuestas, en cuestión de unos pocos segundos sin llegar a ningún límite como error de memoria, etc.,

+0

Erlang se diseñó para conmutadores telefónicos, donde puede haber cientos de miles de "agentes de usuario" (es decir, procesos) ejecutándose simultáneamente. –

Respuesta

3

Según el famoso Richard Jones blog puede manejar una conexión de 100k casi de fábrica. Debe aumentar el límite del proceso, consulte el parámetro +P y necesita trucos de administración de memoria pequeños, p. gc o hibernate. Para lograr significativamente más se tiene que hacer más piratería con C.

1

Puede manejar casi cualquier cosa que le arroje. Los procesos de Erlang son extremadamente livianos.

Consulte http://www.sics.se/~joe/apachevsyaws.html para obtener un punto de referencia en concurrencia entre Yaws y Apache. Te da una buena idea de lo que es posible.

+0

Nada puede manejar "casi todo lo que le arrojas" si solo arrojas suficiente. Buen enlace sin embargo. –

1

Como ya se ha dicho, es mucho una buena respuesta. Y también, dado que su requisito es escribir un cliente de tsunami, puede/debe distribuir el código a varios nodos erlang.

Aún mejor, es posible que desee comprobar Tsung. Es una aplicación de prueba de carga distribuida escrita en erlang.

Y si no quiere usarlo, estoy bastante seguro de que hay un código que desea leer allí.