2011-06-01 25 views
7

Mi servidor node.js realiza una llamada a otro servidor utilizando la última (0.4.8) llamada http.request.¿Cuál es el rendimiento de la http.request de Node.js? ¿Cuántas solicitudes concurrentes puede manejar?

Utilizo jMeter para ejecutar pruebas de carga. con 50-100 subprocesos simultáneos por segundo y un bucle 1000 veces.

Observo un poco de desaceleración cuando el script se ejecuta. Superviso que el rendimiento de la red es bastante bajo, la memoria de la CPU & también es baja. Y en el otro servidor, el registro muestra que su respuesta es rápida. (dentro de milisegundos).

sin embargo, console.log en mi servidor node.js muestra que el tiempo de respuesta http.request comienza con 200-300 ms, a 2000-3000 ms.

No estoy seguro de si existe un límite de http.request concurrente que pueda realizar.

por favor asesorar.


Después tremenda prueba, creo que el promedio es de unos 300-400 petición/seg para http.request con un servidor bien, maxSockets = 1024. Por lo general, veo la velocidad (conectar a los distintos sitio web) es de unos 80-100 ms por solicitud.

Respuesta

10

Las conexiones simultáneas máximas deberían depender de su hardware. This article dicho node.js puede soportar decenas de miles de conexiones simultáneas. Sin embargo, la mayoría de los sistemas de Linux solo le permiten abrir 1024 archivos/sockets al mismo tiempo de forma predeterminada. Para ese caso, puede ejecutar como root y luego establecer ulimit como un gran número (por ejemplo, 100000), luego ejecutar una prueba de estrés con su hardware para obtener la capacidad precisa de conexión simultánea.

+4

obtener el # de socket: ulimit -n establecer el # de socket como 10240: ulimit -n 10240 – sky100

Cuestiones relacionadas