2012-01-25 11 views
5

La razón por la que pido es que este post¿Hay algún punto de referencia que muestre cuántas solicitudes de Comet por segundo pueden ser manejadas por Node.js 0.6.8?

http://amix.dk/blog/post/19577

Indica que Node.js 0.2.2 parece tener un umbral de 500/s, siendo superado 10x de Netty. En los comentarios, Ryan Dahl indica que posiblemente se debió a un error que se corrigió posteriormente. Sin embargo, no puedo encontrar en el resto de la publicación ni en ningún otro lugar ninguna confirmación de que el problema se haya resuelto y, en caso de ser así, puntos de referencia actualizados. Ahora tenemos muchas versiones antes del referido anteriormente y me pregunto si hay puntos de referencia, formales o pertenecientes a las solicitudes de Comet/segundo.

Si no hay puntos de referencia, sería bueno saber en términos generales si el problema marcado por Amir todavía está pendiente. 500 cometas/segundo es un umbral que podría alcanzarse mediante un sitio de chat/juego de tamaño modesto.

Respuesta

2

node.js ha recorrido un largo camino desde 0.2.2. Parece probable que también haya problemas de implementación con la arquitectura que se discute en la publicación vinculada, ya que los comentarios sugieren que no consideraron el uso de procesos de nodos múltiples con un equilibrador de carga.

Esto es claramente una necesidad para aplicaciones de alto rendimiento - de hecho, el último párrafo de la node.jsofficial about section lee:

Pero ¿qué pasa con la concurrencia de procesador múltiple? ¿No son necesarios los hilos para escalar programas a computadoras multi-core? Puede iniciar nuevos procesos a través de child_process.fork() estos otros procesos se programarán en paralelo. Para equilibrar la carga de las conexiones entrantes en múltiples procesos, use el módulo de clúster.

Ahora, teniendo en cuenta que un único proceso de nodo 0.2.2 utiliza% 10 de los recursos de Netty (como se menciona en el poste vinculado OP), entonces se podría haber correr 10 procesos de los nodos en el mismo hardware, lo que plantea la pregunta: Si Netty es 10 veces más rápido que el nodo, pero usa 10 veces los recursos, entonces ¿no fue realmente su rendimiento el mismo? Mientras tanto, el rendimiento del nodo se ha mejorado drásticamente en las versiones >=0.6.0, , especialmente en máquinas con Windows, que ahora es compatible de forma nativa. Ver los puntos de referencia de Windows desde el 0.6.0 release notes:

El punto de referencia http fue hecho con 600 clientes en una red 10GE sirve de tres máquinas de generación de carga.

      v0.4.12 (windows) v0.6.0 (windows) 
http_simple.js /bytes/1024 3858 r/s   5823 r/s 
io.js read     12.41 mB/s   26.51 mB/s 
io.js write     12.61 mB/s   33.58 mB/s 
startup.js     152.81 ms   52.04 ms 

Mientras tanto, aunque nadie parece querer hablar de lo es exactamente lo que está haciendo, parece que algunos de los jugadores más altos tecnología tráfico están recurriendo a node.js para sistemas de alta capacidad extremadamente. Google, Yahoo, Mozilla, LinkedIn y puesta en marcha i.TV están todos perfilados en el artículo Node at scale publicado ayer en venturebeat.com.

Si bien no pude encontrar referencias exactas de cometa/segundo, parece claro que con la arquitectura adecuada del sistema es mucho, mucho superior a 500.

Cuestiones relacionadas