Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Página de estadísticas de la máquina virtual (VM) de Node.js
En APM de New Relic, la página Node VMs proporciona datos de tiempo de ejecución útiles para resolver problemas de rendimiento y monitorear el estado de su aplicación.
Ver estadísticas de la máquina virtual (VM) de Node.js
one.newrelic.com > All capabilities > APM & services > (select an app) > Node VMs: cuando varios servidores informan a la misma aplicación, la página desglosa los gráficos por servidor. Puede ver los datos de un servidor individual y obtener detalles adicionales seleccionando un servidor del filtro Servers en la parte superior de la página.
Para correlacionar picos o tendencias al alza en cualquiera de estas mediciones con transacciones específicas:
A medida que vaya a otras páginas, la selección del selector de tiempo seguirá siendo la misma.
Analizar problemas de rendimiento
A continuación se muestra un resumen de los datos disponibles en los gráficos Node VMs individuales. Al utilizar todos los gráficos juntos, puede solucionar problemas de rendimiento. Por ejemplo:
Cuando la aplicación comience a utilizar más objetos, el uso de memoria aumentará y la recolección de basura (GC) se ejecutará con más frecuencia. La utilización de la CPU aumentará debido al tiempo dedicado a GC.
La ejecución de código sincrónico anormalmente larga puede aumentar la utilización de la CPU. Esto mostrará picos en el gráfico
Event loop max CPU time per tick
.
La cantidad de tiempo dedicado a la recolección de basura. Para un solo servidor, el gráfico muestra el tiempo promedio, máximo y total por minuto. Para varios servidores, el gráfico muestra el tiempo total agrupado por servidor.
Normalmente, los picos en el tiempo o la frecuencia de GC indican un problema potencial.
El número de veces que se ejecutaron ejecuciones de GC por minuto. Para un único servidor, el gráfico se desglosa por tipo de GC. Para varios servidores, el gráfico muestra el número total de llamadas de GC (todos los tipos combinados) agrupadas por servidor.
Este gráfico muestra el tiempo total dedicado a la recolección de basura por minuto, desglosado por tipo de GC. Solo se muestra cuando se visualiza un único servidor. Es posible que vea los siguientes tipos según su versión de Node.js y la actividad de la aplicación:
Value
Description
Scavenge
El método de recolección de basura más común. Normalmente, Node.js activará uno de estos cada vez que la máquina virtual (VM) esté inactiva.
MarkSweepCompact
El tipo más pesado de recolección de basura V8 puede ser suficiente. Si ve que suceden muchos de estos, necesitará mantener menos objetos en su proceso o aumentar el límite de almacenamiento dinámico de V8.
IncrementalMarking
Una recolección de basura por fases que intercala la recolección con la lógica de la aplicación para reducir la cantidad de tiempo que la aplicación está en pausa. Sólo en Node.js v6 o superior.
ProcessWeakCallbacks
Después de que se produzca una recolección de basura, V8 llamará a cualquier devolución de llamada de referencia débil registrada para los objetos que hayan sido liberados. Esta medida es desde el inicio de la primera devolución de llamada débil hasta el final de la última para una recolección de basura determinada. Sólo en Node.js v6 o superior.
Este gráfico muestra la cantidad de memoria consumida por el proceso Node.js. Para varios servidores, el gráfico muestra la memoria total agrupada por servidor. Para un único servidor, el gráfico está segmentado por los siguientes tipos de memoria:
Value
Description
No montón
La memoria asignada a datos fuera del montón de V8 (por ejemplo, buffers, sockets).
Montón V8 (usado)
La cantidad de memoria que utiliza V8 (por ejemplo, objetos JavaScript).
Montón V8 (gratis)
La cantidad de memoria reservada por V8 para la agrupación de memoria. Esta memoria no se utiliza activamente, pero se reserva para que V8 asigne libremente más según sea necesario.
Este gráfico muestra la utilización de CPU del proceso Node.js.
Para varios servidores, el gráfico muestra la utilización total de la CPU agrupada por servidor. Para un solo servidor, el gráfico está segmentado de la siguiente manera:
Value
Description
Usuario
El tiempo dedicado a ejecutar el código de usuario, dividido por el tiempo de reloj.
Sistema
El tiempo transcurrido en el kernel del sistema en nombre del proceso Node.js, dividido por el tiempo de reloj.
Este gráfico muestra el número de tics del bucle de eventos por minuto. Un tick es un solo giro del bucle de eventos, en el que se ejecutan funciones que están listas para ser ejecutadas.
Como parte de cada giro del bucle de eventos, Node.js espera a que se complete la E/S pendiente. Una vez que se recibe cualquier evento de E/S, el bucle de eventos ejecuta la devolución de llamada asociada con él. Por lo tanto, el número de ticks por minuto corresponde a la frecuencia con la que ocurren los eventos de E/S.
Este gráfico muestra el tiempo máximo empleado en un solo tick por minuto. Esto es útil para detectar un tic de bucle de evento anormalmente largo, lo que indica una ejecución de código sincrónica prolongada.
Ver clúster de múltiples procesos
Cuando varios procesos de Node.js en el mismo servidor informan a la misma aplicación New Relic, estos gráficos mostrarán datos agregados. Esto se debe a que cada proceso de trabajo en un clúster tiene su propio tiempo de ejecución de Node.js independiente y recopila datos separados.
Clusters
Comments
Suma de todos los trabajadores
Los siguientes gráficos muestran una suma de todos los trabajadores:
Tiempo de pausa del GC: tiempo total por minuto
Frecuencia de pausa del GC
Tiempo de pausa de GC por tipo
Utilización de la CPU
Ticks de bucle de evento por minuto
Promedio de todos los trabajadores
Los siguientes gráficos muestran un promedio de todos los trabajadores:
Uso de memoria
Tiempo de pausa del GC: promedio
Máximo en todos los trabajadores
Los siguientes gráficos muestran el máximo para todos los trabajadores: