Depurar com o diagrama de trabalho físico (pré-visualização) no portal do Azure

O diagrama da tarefa física no portal do Azure pode ajudá-lo a visualizar as principais métricas da tarefa com o nó de transmissão em fluxo no formato de diagrama ou tabela, por exemplo: utilização da CPU, utilização da memória, Eventos de Entrada, IDs de Partição e Atraso da Marca d'água. Ajuda-o a identificar a causa de um problema ao resolver problemas.

Este artigo demonstra como utilizar o diagrama de trabalho físico para analisar o desempenho de uma tarefa e identificar rapidamente o estrangulamento no portal do Azure.

Importante

Esta funcionalidade está atualmente em PRÉ-VISUALIZAÇÃO. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Identificar o paralelismo de uma tarefa

A tarefa com paralelização é o cenário dimensionável no Stream Analytics que pode proporcionar um melhor desempenho. Se uma tarefa não estiver no modo paralelo, é provável que tenha um certo estrangulamento no desempenho. É importante identificar se uma tarefa está ou não em modo paralelo. O diagrama de trabalho físico fornece um gráfico visual para ilustrar o paralelismo da tarefa. No diagrama de trabalho físico, se houver interação de dados entre diferentes nós de transmissão em fluxo, esta tarefa é uma tarefa não paralela que precisa de mais atenção. Por exemplo, o diagrama de tarefas não paralelos abaixo:

Captura de ecrã que mostra a tarefa não paralela no diagrama físico.

Pode considerar otimizá-lo para tarefas paralelas (como exemplo abaixo) ao reescrever a consulta ou atualizar as configurações de entrada/saída com o simulador de diagrama de tarefas na extensão ASA do Visual Studio Code ou no editor de consultas no portal do Azure. Para saber mais, veja Otimizar a consulta com o simulador de diagrama de tarefas (pré-visualização).

Captura de ecrã que mostra a vista de distorção de dados com diagrama físico.

Principais métricas para identificar o estrangulamento de uma tarefa paralela

O atraso da marca d'água e os eventos de entrada com registos pendentes são as principais métricas para determinar o desempenho da tarefa do Stream Analytics. Se o atraso da marca d'água da sua tarefa estiver continuamente a aumentar e os eventos de entrada forem registados em atraso, a tarefa não conseguirá acompanhar a taxa de eventos de entrada e produzir saídas em tempo útil. Do ponto de vista do recurso de computação, os recursos de CPU e memória são utilizados em alto nível quando este caso acontece.

O diagrama de tarefas físicas visualiza estas métricas-chave no diagrama em conjunto para lhe fornecer uma imagem completa das mesmas para identificar facilmente o estrangulamento.

Captura de ecrã que mostra as principais métricas num nó no diagrama físico.

Para obter mais informações sobre a definição de métricas, veja Dimensão do nome do nó do Azure Stream Analytics.

Identificar os eventos de entrada distribuídos irregulares (distorção de dados)

Quando já tiver uma tarefa em execução no modo paralelo, mas observar um atraso de marca d'água elevado, utilize este método para determinar porquê.

Para encontrar a causa principal, abra o diagrama da tarefa física no portal do Azure. Selecione Diagrama de trabalho (pré-visualização) em Monitorização e mude para Diagrama físico.

Captura de ecrã que mostra a vista de distorção de dados com diagrama físico.

No diagrama físico, pode identificar facilmente se todas as partições têm um atraso de marca d'água elevado ou apenas algumas, visualizando o valor de atraso da marca d'água em cada nó ou escolhendo a definição de mapa térmico de atraso de marca d'água para ordenar os nós de transmissão em fluxo (recomendado):

Captura de ecrã que mostra a definição de mapa térmico de atraso de marca d'água.

Depois de aplicar as definições de mapa térmico que efetuou acima, obterá os nós de transmissão em fluxo com atraso de marca d'água elevado no canto superior esquerdo. Em seguida, pode verificar se os nós de transmissão em fluxo correspondentes estão a ter eventos de entrada mais significativos do que outros. Para este exemplo, o streamingnode#0 e o streamingnode#1 estão a ter mais eventos de entrada.

Captura de ecrã que mostra a vista de distorção de dados com diagrama físico no mapa térmico de atraso da marca d'água.

Pode ainda verificar quantas partições são alocadas aos nós de transmissão em fluxo individualmente para saber se mais eventos de entrada são causados por mais partições alocadas ou por qualquer partição específica com mais eventos de entrada. Neste exemplo, todos os nós de transmissão em fluxo estão a ter duas partições. Significa que o streamingnode#0 e o streamingnode#1 estão a ter determinada partição específica que contém mais eventos de entrada do que outras partições.

Para localizar que partição tem mais eventos de entrada do que outras partições no streamingnode#0 e no streamingnode#1, siga os seguintes passos:

  • Selecione Adicionar gráfico na secção gráfico
  • Adicionar Eventos de Entrada em métrica e ID de Partição em separador
  • Selecione Aplicar para apresentar o gráfico de eventos de entrada
  • Tick streamingnode#0 e streamingnode#1 no diagrama

Verá o gráfico abaixo com a métrica de eventos de entrada filtrada pelas partições nos dois nós de transmissão em fluxo.

Captura de ecrã que mostra eventos de entrada divididos por partição e nó.

Que medidas adicionais pode tomar?

Conforme mostrado no exemplo, as partições (0 e 1) têm mais dados de entrada do que outras partições. Chamamos a esta distorção de dados. Os nós de transmissão em fluxo que estão a processar as partições com distorção de dados precisam de consumir mais recursos de CPU e memória do que outros. Este desequilíbrio leva a um desempenho mais lento e aumenta o atraso da marca d'água. Também pode verificar a utilização da CPU e da memória nos dois nós de transmissão em fluxo no diagrama físico. Para mitigar o problema, tem de reparticionar os dados de entrada de forma mais uniforme.

Identificar a causa da CPU ou memória sobrecarregada

Quando uma tarefa paralela tem um atraso crescente de marca d'água sem a situação de distorção de dados mencionada anteriormente, pode ser causada por uma quantidade significativa de dados em todos os nós de transmissão em fluxo que inibem o desempenho. Pode identificar que a tarefa tem esta característica com o diagrama físico.

  1. Abra o diagrama da tarefa física, aceda ao seu trabalho portal do Azure em Monitorização, selecione Diagrama de trabalho (pré-visualização) e mude para Diagrama físico. Verá o diagrama físico carregado como abaixo.

    Captura de ecrã que mostra a descrição geral da tarefa de cpu e memória sobrecarregada.

  2. Verifique a utilização da CPU e da memória em cada nó de transmissão em fluxo para ver se a utilização em todos os nós de transmissão em fluxo é demasiado elevada. Se a utilização da CPU e da SU for elevada (mais de 80 por cento) em todos os nós de transmissão em fluxo, pode concluir que esta tarefa tem uma grande quantidade de dados a serem processados em cada nó de transmissão em fluxo.

    No caso acima, a utilização da CPU ronda os 90% e a utilização da memória já está a 100%. Mostra que cada nó de transmissão em fluxo está a ficar sem recurso para processar os dados.

    Captura de ecrã que mostra a cpu e a memória sobrecarregadas em todos os nós.

  3. Verifique quantas partições são alocadas a cada nó de transmissão em fluxo para que possa decidir se precisa de mais nós de transmissão em fluxo para equilibrar as partições para reduzir o peso dos nós de transmissão em fluxo existentes.

    Neste caso, cada nó de transmissão em fluxo está a ter quatro partições alocadas que se assemelham demasiado a um nó de transmissão em fluxo.

Que medidas adicionais pode tomar?

Considere reduzir a contagem de partições para cada nó de transmissão em fluxo para reduzir os dados de entrada. Pode duplicar as SUs alocadas a cada nó de transmissão em fluxo para duas partições por nó ao aumentar a contagem de nós de transmissão em fluxo de 8 para 16. Em alternativa, pode quadruplicar as SUs para que cada nó de transmissão em fluxo processe os dados de uma partição.

Para saber mais sobre a relação entre o nó de transmissão em fluxo e a unidade de transmissão em fluxo, veja Compreender a unidade de transmissão em fluxo e o nó de transmissão em fluxo.

O que deve fazer se o atraso da marca d'água continuar a aumentar quando um nó de transmissão em fluxo está a processar dados de uma partição? Reparticione a sua entrada com mais partições para reduzir a quantidade de dados em cada partição. Para obter detalhes, veja Utilizar a repartição para otimizar as tarefas do Azure Stream Analytics.

Passos seguintes