Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para entender a integridade de um trabalho do Azure Stream Analytics, você precisa saber como usar as métricas e dimensões desse trabalho. Você pode obter as métricas e dimensões que te interessam no portal do Azure, na extensão Visual Studio Code Stream Analytics ou em um SDK.
O atraso de marca d'água e os eventos de entrada com lista de pendências são as principais métricas que determinam o desempenho de um trabalho do Stream Analytics. Se o atraso de marca d'água do trabalho aumentar continuamente e os eventos de entrada têm uma lista de pendências, o trabalho não conseguirá acompanhar a taxa de eventos de entrada nem produzir saídas a tempo.
Este artigo mostra como usar métricas e dimensões de trabalhos do Stream Analytics no portal do Azure para diagnosticar o desempenho de um trabalho. As seções a seguir mostram, passo a passo, vários exemplos que partem da métrica Watermark Delay para diagnosticar problemas comuns de desempenho.
Nenhuma entrada de uma determinada partição aumenta o atraso de marca d'água do trabalho
Se o atraso da marca-d'água do seu trabalho altamente paralelo aumentar constantemente, abra Métricas no portal do Azure. Depois, use estes passos para descobrir se a causa raiz é a falta de dados em algumas partições da sua fonte de entrada:
Verifique qual partição apresenta aumento no atraso do watermark. Selecione a métrica Atraso da marca-d'água e divida-a pela dimensão ID da partição. No exemplo a seguir, a partição 465 tem um grande atraso de marca d'água.
Verifique se algum dado de entrada está faltando para essa partição. Selecione a métrica Eventos de entrada e filtre-a para essa ID de partição específica.
Ação recomendada
O atraso de marca d'água dessa partição está aumentando, pois não há eventos de entrada fluindo para ela. Se a janela de tolerância de chegada em atraso do trabalho for de várias horas e nenhum dado de entrada estiver fluindo para uma partição, o atraso de marca d'água dessa partição possivelmente continuará aumentando até atingir a janela de chegada em atraso.
Por exemplo, se sua janela de chegada em atraso for de seis horas e os dados de entrada não estiverem fluindo para a partição de entrada 1, o atraso de marca d'água da partição de saída 1 aumentará até atingir seis horas. Verifique se sua fonte de entrada está produzindo dados conforme esperado.
A distorção de dados de entrada causa um alto atraso de marca d'água
Quando seu trabalho perfeitamente paralelo tem um atraso alto na marca d'água, primeiro divida a métrica Atraso da Marca d'Água pela dimensão ID da Partição. Em seguida, identifique se todas as partições têm um grande atraso de marca d'água ou apenas algumas delas.
No exemplo a seguir, as partições 0 e 1 têm atraso de marca d'água maior (cerca de 20 a 30 segundos) do que as outras oito partições. Os atrasos de marca d'água das outras partições são sempre estáveis em oito a dez segundos.
Verifique como são os dados de entrada entre essas partições dividindo a métrica de Eventos de Entrada pelo ID da Partição:
Ação recomendada
No exemplo anterior, as partições (0 e 1) com alto atraso de marca d'água recebem significativamente mais dados de entrada do que as outras partições. Essa condição é chamada de desfasamento de dados. Os nós de streaming que processam as partições com data skew consomem mais recursos de CPU e memória do que os outros, como mostra a captura de tela a seguir.
Nós de streaming que processam partições com maior desequilíbrio de dados apresentam porcentagem de utilização da CPU e porcentagem de utilização de SU (memória) maiores. Essa pressão de recursos afeta o desempenho da tarefa e aumenta o atraso da marca d’água. Para mitigar isso, reparticione seus dados de entrada de forma mais uniforme.
Você também pode resolver esse problema usando o diagrama físico de trabalho. Para mais informações, consulte Diagrama físico do trabalho: identificar os eventos de entrada distribuídos de forma desigual (distribuição desigual dos dados).
A sobrecarga da CPU ou da memória aumenta o atraso do watermark
Quando um trabalho perfeitamente paralelo apresenta um atraso crescente da marca d'água, o atraso pode afetar todas as partições, não apenas uma ou várias. Para confirmar que seu trabalho está nessa situação, use estes passos:
Divida a métrica Atraso da marca d'água por ID de partição. Por exemplo:
Divida a métrica de Eventos de Entrada pelo ID da Partição para confirmar se há desvio de dados nos dados de entrada de cada partição.
Verifique as métricas de % de utilização da CPU e % de utilização de SU (memória) para ver se a utilização está muito alta em todos os nós de streaming.
Se ambas as métricas estiverem altas (mais de 80%) em todos os nós de streaming, pode-se concluir que cada nó de streaming está processando uma grande quantidade de dados.
Verifique quantas partições são alocadas a um nó de streaming usando a métrica de Eventos de Entrada . Filtre pela ID do nó de streaming com a dimensão Nome do Nó e divida pela ID de Partição.
A captura de tela anterior mostra que quatro partições foram alocadas para um nó de streaming que ocupa cerca de 90 a 100% do recurso do nó de streaming. Use uma abordagem semelhante para verificar os demais nós de streaming e confirmar que eles também estão processando dados de quatro partições.
Ação recomendada
Reduza o número de partições que cada nó de streaming processa para reduzir o volume de dados de entrada por nó. Para isso, dobre as SUs para que cada nó de streaming processe dados de duas partições, ou quadruplique as SUs para que cada nó de streaming processe dados de uma partição. Para obter informações sobre a relação entre a atribuição de SU e a contagem de nós de streaming, confira Compreender e ajustar unidades de streaming.
O que fazer se o atraso de marca d'água ainda estiver aumentando após modificar um nó de streaming para manipular os dados de uma única partição? Reparticione a entrada com mais partições para reduzir a quantidade de dados em cada uma delas. Para obter detalhes, consulte Usar o reparticionamento para otimizar trabalhos do Azure Stream Analytics.
Você também pode depurar esse problema com o diagrama físico de trabalho. Para mais informações, veja Diagrama físico de trabalho: Identificar a causa da CPU ou memória sobrecarregada.