Pregunta

Estoy trabajando en una prueba de carga de trabajo node.js y acabo de encontrar un comportamiento interesante. El tiempo de respuesta mínimo de un servidor HTTP es de 200 ms, incluso para la lógica más simple:

var http = require("http");

http.createServer(function(request, response) { 

  response.write("Hello World");
  response.end();

}).listen(8080);

Se ejecutó en Windows Server 2003:

> node main.js

Busqué en la web, pero no he encontrado ninguna información sobre esto. La prueba se realiza en la red local, además con el uso de otro servidor web (a saber, IIS), puedo lograr un tiempo de respuesta instantánea. No me malinterpreten, veo una explicación racional detrás de este comportamiento, así que esta es mi pregunta:

Es este el comportamiento por defecto Veniendo con Node.js, ¿o podría ser el resultado de algo más?

Aclaración sobre la demanda:

  • Versión del nodo JS: 0.6.11
  • OS: Windows Server 2003 R2 SP2
  • Entorno del servidor: VMware Workstation 8.0.0
  • Utilidad de carga de trabajo: JMeter 2.6 (1 carga de trabajo de hilo)

Actualizar

El comportamiento de retraso solo aparece durante las solicitudes remotas. Si se ejecuta una prueba de carga de trabajo local, la latencia estará cerca de cero. Sin embargo, no puede ser un problema de latencia de red, porque una solicitud remota contra IIS en el mismo servidor no da latencia. Voy a probar esto en otros sistemas operativos.

¿Fue útil?

Solución

Es el algoritmo Nagle establecido de forma predeterminada en Windows (reproducible también en Windows 2008 R2 en Azure).

Solución alternativa: desactívelo en el enchufe de respuesta, como este:

response.connection.setNoDelay(true);

Otros consejos

Obteniendo la latencia de 5 ms, descarga de 3 ms para un total de 8 ms aquí. Varía, pero lo más alto que he visto es aproximadamente 14 ms en total.

Sin embargo, corrió en OS X 10.7.3. Tendré que probar Windows y ver.

Estoy ejecutando Ubuntu 64bit y Node Version 0.6.10 y como máximo obtengo un retraso de 20 ms. Creo que es un problema de Windows, ya que el nodo todavía no es perfecto en Windows, tiene que esperar más estabilidad. Le sugiero que publique sus problemas en la lista de correo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top