Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para entender la salud de un trabajo de Azure Stream Analytics, necesitas saber cómo usar las métricas y dimensiones del puesto. Puedes obtener las métricas y dimensiones que te interesen desde el portal de Azure, la extensión Visual Studio Code Stream Analytics o un SDK.
El retraso de la marca de agua y los eventos de entrada acumulados son las principales métricas que determinan el rendimiento de un trabajo de Stream Analytics. Si el retraso de la marca de agua de tu trabajo aumenta continuamente y se acumulan eventos de entrada, el trabajo no podrá seguir el ritmo de los eventos de entrada y no podrá generar resultados a tiempo.
Este artículo te muestra cómo usar métricas y dimensiones de trabajos de Stream Analytics en el portal de Azure para diagnosticar el rendimiento de un trabajo. Las siguientes secciones recorren varios ejemplos que usan como punto de partida la métrica Watermark Delay para diagnosticar problemas comunes de rendimiento.
La falta de entrada en determinadas particiones aumenta el retraso en la marca de agua del trabajo
Si el retraso de la marca de agua de tu trabajo de paralelismo masivo aumenta de forma constante, abre Métricas en el Azure Portal. Luego utiliza estos pasos para averiguar si la causa raíz es la falta de datos en algunas particiones de tu fuente de entrada:
Compruebe qué partición tiene el retraso creciente de la marca de agua. Seleccione la métrica Retraso de marca de agua y divídala por la dimensión Id. de partición. En el ejemplo siguiente, la partición 465 tiene un retraso de marca de agua alto.
Comprueba si falta algún dato de entrada para esta partición. Seleccione la métrica Eventos de entrada y fíltrela por este identificador de partición concreto.
Acción recomendada
El retraso de la marca de agua de esta partición aumenta porque no hay eventos de entrada que lleguen a ella. Si la ventana de tolerancia de su trabajo para llegadas tardías es de varias horas y no fluyen datos de entrada hacia una partición, es de esperar que el retraso de marca de agua de esa partición siga aumentando hasta alcanzar la ventana de llegadas tardías.
Por ejemplo, si su ventana de llegadas tardías es de seis horas y no fluyen datos de entrada hacia la partición de entrada 1, el retraso de marca de agua de la partición de salida 1 aumentará hasta alcanzar las seis horas. Comprueba si tu fuente de entrada está produciendo los datos como esperas.
La asimetría de datos de entrada provoca un retraso elevado en la marca de agua
Cuando su trabajo de paralelismo masivo presente un retraso de marca de agua elevado, divida primero la métrica Retraso de marca de agua por la dimensión ID de partición. A continuación, determine si todas las particiones tienen un retraso de marca de agua elevado o solo algunas de ellas.
En el siguiente ejemplo, las particiones 0 y 1 tienen un retraso de marca de agua mayor (entre 20 y 30 segundos aproximadamente) que las otras ocho particiones. Los retrasos de la marca de agua de las restantes particiones siempre son constantes, oscilan entre los 8 y 10 segundos.
Comprueba cómo son los datos de entrada en estas particiones dividiendo la métrica de Eventos de Entrada por ID de Partición:
Acción recomendada
En el ejemplo anterior, las particiones (0 y 1) que tienen un elevado retraso de marca de agua reciben significativamente más datos de entrada que las demás particiones. Esta condición se denomina desfase de datos. Los nodos de streaming que procesan las particiones con desfase de datos consumen más recursos de CPU y memoria que los demás, como muestra la siguiente captura de pantalla.
Los nodos de streaming que procesan particiones con un mayor sesgo de datos muestran un mayor % de utilización de CPU y % de utilización de SU (memoria). Esta presión sobre los recursos afecta al rendimiento del trabajo y aumenta el retraso de marca de agua. Para mitigarlo, reparticiona tus datos de entrada de forma más uniforme.
También puedes depurar este problema usando el diagrama físico de trabajo. Para más información, véase Diagrama físico de trabajo: Identificar los eventos de entrada distribuidos desiguales (desfase de datos).
La CPU sobrecargada o la memoria aumenta el retraso de la marca de agua
Cuando un trabajo embarrassingly parallel presenta un retraso de marca de agua creciente, dicho retraso puede afectar a todas las particiones, no solo a una o varias. Para confirmar que tu trabajo está en esta situación, utiliza estos pasos:
Divida la métrica Retraso de marca de agua por id. de partición. Por ejemplo:
Divide la métrica de Eventos de Entrada por ID de Partición para confirmar si hay desfase de datos en los datos de entrada de cada partición.
Comprueba las métricas de utilización de CPU % y de utilización de SU (memoria) % para ver si la utilización es demasiado alta en todos los nodos de streaming.
Si ambas métricas son altas (más del 80 por ciento) en todos los nodos de streaming, se puede concluir que cada nodo de streaming procesa una gran cantidad de datos.
Comprueba cuántas particiones se asignan a un nodo de streaming usando la métrica de Eventos de Entrada . Filtre por identificador de nodo de streaming con la dimensión Nombre del nodo y divida por id. de partición.
En la captura de pantalla anterior se muestra que se asignan cuatro particiones a un nodo de streaming que ocupa entre el 90 al 100 por ciento del recurso de nodo de streaming. Usa un enfoque similar para comprobar el resto de nodos de streaming y confirmar que también están procesando datos de cuatro particiones.
Acción recomendada
Reducir el número de particiones que maneja cada nodo de streaming para disminuir los datos de entrada por nodo. Para ello, duplica las SUs para que cada nodo de streaming gestione datos de dos particiones, o cuadruplica las SUs para que cada nodo de streaming gestione datos de una sola partición. Para más información sobre la relación entre la asignación de unidades de procesamiento y el número de nodos de streaming, consulte Descripción y ajuste de las unidades de streaming.
¿Qué debo hacer si el retraso de la marca de agua sigue aumentando aunque cada nodo de streaming controle los datos de una sola partición? Reparticione los datos de entrada en más particiones para reducir la cantidad de datos en cada partición. Para más detalles, consulte Uso de la repartición para optimizar los trabajos de Azure Stream Analytics.
También puedes depurar este problema con el diagrama físico de trabajo. Para más información, véase Diagrama físico de trabajo: Identificar la causa de la sobrecarga de CPU o memoria.