Depuración con el diagrama de trabajos físicos (versión preliminar) de Azure Portal

El diagrama de trabajos físicos de Azure Portal puede ayudarle a visualizar las métricas clave del trabajo con el nodo de streaming en formato de diagrama o tabla, por ejemplo: uso de CPU, uso de memoria, eventos de entrada, id. de partición y retraso de la marca de agua. Cuando soluciona los problemas, le ayuda a identificar la causa.

En este artículo se muestra cómo usar el diagrama de trabajos físicos para analizar el rendimiento de un trabajo e identificar con rapidez su cuello de botella en Azure Portal.

Importante

Esta característica actualmente está en VERSIÓN PRELIMINAR. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Identificación del paralelismo de un trabajo

El trabajo con paralelización es el escenario escalable de Stream Analytics que puede proporcionar el mejor rendimiento. Si un trabajo no está en modo paralelo, lo más probable es que tenga cierto cuello de botella en su rendimiento. Es importante identificar si un trabajo está en modo paralelo o no. El diagrama de trabajos físicos proporciona un gráfico visual para ilustrar el paralelismo del trabajo. En el diagrama de trabajos físicos, si hay interacción de datos entre distintos nodos de streaming, significa que el trabajo es un trabajo no paralelo que necesita más atención. Por ejemplo, el siguiente diagrama de trabajo no paralelo:

Captura de pantalla que muestra el trabajo no paralelo en el diagrama físico.

Puede considerar optimizarlo en un trabajo paralelo (como se muestra a continuación) al reescribir la consulta o actualizar las configuraciones de entrada o salida con el simulador de diagrama de trabajos dentro de la extensión ASA de Visual Studio Code o el editor de consultas en Azure Portal. Para obtener más información, consulte Optimización de consultas mediante el simulador de diagramas de trabajos (versión preliminar).

Captura de pantalla que muestra una vista de asimetría de datos con un diagrama físico.

Métricas clave para identificar el cuello de botella de un trabajo paralelo

El retraso de la marca de agua y los eventos de entrada de trabajos pendientes son las métricas clave para determinar el rendimiento del trabajo de Stream Analytics. Si el retraso de la marca de agua del trabajo aumenta continuamente y los eventos de entrada están pendientes, el trabajo no puede mantener el ritmo del índice de eventos de entrada y generar salidas a tiempo. Desde el punto de vista del recurso de cálculo, los recursos de la CPU y de la memoria se usan en gran medida cuando se da este caso.

El diagrama de trabajos físicos visualiza estas métricas clave en el diagrama para proporcionar una imagen completa de estos a fin de identificar con facilidad el cuello de botella.

Captura de pantalla que muestra las métricas clave en un nodo en el diagrama físico.

Para obtener más información sobre la definición de métricas, consulte Dimensión de nombre de nodo de Azure Stream Analytics.

Identificar los eventos de entrada distribuidos desiguales (asimetría de datos)

Cuando un trabajo ya se ejecuta en modo paralelo, pero observa un retraso elevado de la marca de agua, use este método para determinar por qué.

Para encontrar la causa principal, abra el diagrama de trabajos físicos en Azure Portal. Seleccione Diagrama de trabajo (versión preliminar) en Supervisión y cambie a Diagrama físico.

Captura de pantalla que muestra una vista de asimetría de datos con un diagrama físico.

Desde el diagrama físico, para identificar con facilidad si todas las particiones tienen un retraso elevado de la marca de agua o solo algunas de ellas, puede ver el valor de retraso de la marca de agua en cada nodo o bien puede elegir la configuración del mapa térmico de retraso de la marca de agua para ordenar los nodos de streaming (recomendado):

Captura de pantalla que muestra la configuración del mapa térmico del retraso de la marca de agua.

Después de aplicar la configuración del mapa térmico que realizó anteriormente, obtendrá los nodos de streaming con un retraso de la marca de agua alto en la esquina superior izquierda. A continuación, puede comprobar si los nodos de streaming correspondientes tienen más eventos de entrada significativos que otros. En este ejemplo, streamingnode#0 y streamingnode#1 tienen más eventos de entrada.

Captura de pantalla que muestra la vista de asimetría de datos con un diagrama físico en el mapa térmico de retraso de la marca de agua.

Además, puede comprobar cuántas particiones están asignadas a los nodos de streaming individualmente para averiguar si el mayor número de eventos de entrada se debe a más particiones asignadas o a que alguna partición específica tiene más eventos de entrada. En este ejemplo, todos los nodos de streaming tienen dos particiones. Significa que streamingnode#0 y streamingnode#1 tienen cierta partición específica que contiene más eventos de entrada que otras particiones.

Para buscar la partición que tiene más eventos de entrada que otras en streamingnode#0 y streamingnode#1, siga los siguientes pasos:

  • Seleccione Agregar gráfico en la sección de gráficos
  • Agregue eventos de entrada a la métrica y el id. de partición al separador
  • Seleccione Aplicar para sacar el gráfico de eventos de entrada
  • Marque streamingnode#0 y streamingnode#1 en el diagrama

Verá el gráfico siguiente con la métrica de eventos de entrada que han filtrado las particiones en los dos nodos de streaming.

Captura de pantalla que muestra eventos de entrada divididos por partición y nodo.

¿Qué acción adicional puede realizar?

Tal y como se muestra en el ejemplo, las particiones (0 y 1) tienen más datos de entrada que otras particiones. A esto se le llama asimetría de datos. Los nodos de streaming que procesan las particiones con asimetría de datos deben consumir más recursos de la CPU y memoria que otros. Este desequilibrio conduce a un rendimiento más lento y aumenta el retraso de la marca de agua. Puede comprobar el uso de CPU y memoria en los dos nodos de streaming, así como en el diagrama físico. Para mitigar este problema, tiene que volver a crear particiones de datos de entrada, con el fin de que todas ellas sean más uniformes.

Identificar la causa de la CPU o la memoria sobrecargadas

Cuando un trabajo paralelo tiene un retraso de la marca de agua cada vez mayor y no se da la situación de asimetría de datos que se ha mencionado anteriormente, puede deberse a una cantidad significativa de datos en todos los nodos de streaming que impiden el rendimiento. Puede identificar que el trabajo tiene esta característica mediante el diagrama físico.

  1. Abra el diagrama de trabajos físicos, vaya al trabajo Azure Portal en Supervisión, seleccione Diagrama de trabajos (versión preliminar) y cambie a Diagrama físico. Verá el diagrama físico cargado, tal y como se muestra a continuación.

    Captura de pantalla que muestra la información general del trabajo de CPU y memoria sobrecargados.

  2. Compruebe el uso tanto de CPU como de SU en cada nodo de streaming para ver si el uso en todos los nodos de streaming es demasiado elevado. Si el uso de la CPU y de la SU es elevado (más del 80 %) en todos los nodos de streaming, se puede concluir que este trabajo tiene una gran cantidad de datos que se procesan en cada nodo de streaming.

    En el caso anterior, el uso de la CPU es de alrededor del 90 % y el uso de la memoria ya es del 100 %. Muestra que cada nodo de streaming se está quedando sin recursos para procesar los datos.

    Captura de pantalla que muestra la CPU sobrecargada y la memoria en todos los nodos.

  3. Compruebe cuántas particiones están asignadas a cada nodo de streaming para que pueda decidir si necesita más nodos de streaming a fin de equilibrar las particiones y reducir la carga de los nodos de streaming existentes.

    En este caso, cada nodo de streaming tiene cuatro particiones asignadas, lo que parece demasiado para un nodo de streaming.

¿Qué acción adicional puede realizar?

Considere la posibilidad de reducir el número de particiones para cada nodo de streaming a fin de reducir los datos de entrada. Puede duplicar las SU asignadas a cada nodo de streaming a dos particiones por nodo mediante el aumento del número de nodos de streaming de 8 a 16. O bien, puede cuadruplicar las SU para que cada nodo de streaming controle los datos de una partición.

Para obtener más información sobre la relación entre el nodo de streaming y la unidad de streaming, consulte Descripción de la unidad de streaming y el nodo 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? Aumente el número de particiones de entrada para reducir la cantidad de datos de cada partición. Para más detalles, consulte Uso de la repartición para optimizar los trabajos de Azure Stream Analytics.

Pasos siguientes