Diagnosticar desempenho de Jobs do LakeFlow
Quando um job ou tarefa levar mais tempo que o esperado, use a Jobs UI para entender onde o tempo está sendo gasto e o que você pode fazer para reduzi-lo. Esta página abrange o detalhamento da execução, as métricas de tarefas de transmissão e as métricas de desempenho de query para jobs serverless. Para encontrar e abrir execuções de Job, consulte Monitorar Jobs do LakeFlow.
Visualizar a análise da execução por fase
A análise da execução mostra onde uma execução de job ou de tarefa passa o tempo. Ao view os detalhes da execução do Job, passe o cursor sobre a Duração da execução para ver a duração total dividida nas seguintes fases:
- Na fila
- Aguardando recursos
- Instalação da biblioteca
- Executando

O detalhamento da execução está disponível para execuções de job e execuções de tarefa. Para um job com várias tarefas, a análise em nível de job conta “Aguardando recursos” somente até que a primeira tarefa comece a ser executada. Para uma análise completa de cada tarefa, view a análise da execução na saída da execução da tarefa.
Use a análise para identificar qual fase leva mais tempo e, em seguida, use as seções a seguir para entender as possíveis causas e o que pode ser feito para reduzir esse tempo.
Tarefas de pipeline têm fases diferentes da maioria das tarefas. São: criado, aguardando recursos, inicializando, configurando tabelas e executando. Para obter orientação sobre como reduzir tempos elevados de inicialização e configuração de tabela, consulte Corrigir tempos de inicialização elevados em pipelines.
Fase de enfileiramento
Seu job ou tarefa está aguardando para começar devido a limites de concorrência.
Possíveis causas:
- O Job atingiu o limite máximo de execuções concorrentes porque uma execução anterior do mesmo Job ainda está em andamento.
- Outros jobs sendo executados ao mesmo tempo atingiram o limite de execuções concorrentes no workspace.
O que pode fazer:
- Aumente a configuração de execuções concorrentes máximas para o Job.
- Revise suas programações de Job para reduzir a sobreposição. Se os Jobs competirem consistentemente por recursos, considere escalonar os horários de início. Para obter mais informações, consulte os limites de recurso do Databricks.
Fase de espera por recursos
Seu Job ou tarefa está aguardando o compute estar disponível antes de poder ser executado. O que pode fazer para reduzir o tempo de espera depende do seu tipo de compute.
Tipo de Compute | Possíveis causas | O que você pode fazer |
|---|---|---|
Serverless | O Job serverless usa o modo de desempenho padrão, que tem uma latência de startup de 4 a 6 minutos, dependendo da disponibilidade do compute e de você usar o Spark. | Alterne para o modo otimizado para desempenho para reduzir o tempo de startup. |
Clássico |
|
|
Fase de instalação da biblioteca
Seu job está gastando tempo instalando bibliotecas antes de iniciar a execução.
Tipo de Compute | Possíveis causas | O que você pode fazer |
|---|---|---|
Serverless |
|
|
Clássico | O tempo de instalação da biblioteca é alto devido ao tamanho e complexidade do ambiente definido no cluster, especialmente ao usar init scripts para instalar bibliotecas na inicialização do cluster. | Verifique se o Job usa apenas os pacotes necessários para a execução. |
Fase de execução
Uma execução pode demorar mais do que o esperado por muitas razões. A lista a seguir não é exaustiva, mas abrange algumas causas comuns e possíveis ações.
Possíveis causas:
- O volume de dados aumentou, portanto, uma execução mais longa pode ser esperada.
- Configuração de Job ou compute alterada.
- Alterações no código introduziram queries mais lentas ou operações ineficientes.
O que pode fazer:
- Revise as alterações recentes usando as tabelas do sistema Databricks, como as tabelas do sistema de Jobs e as tabelas do sistema de compute.
- Para jobs serverless, use o histórico de queries para encontrar as queries que levaram mais tempo e abra o perfil de query para identificar oportunidades de otimização. Para encontrar as queries relevantes, use o link na seção Compute de cada tarefa ou abra a view Linha do Tempo do job, que se integra com perfis de query.
- Para jobs executados em compute clássico, use a Spark UI para diagnosticar estágios e tarefas lentas. Comece com a linha do tempo do evento para identificar jobs de execução prolongada, lacunas ociosas ou falhas e, em seguida, detalhe estágios e tarefas individuais para obter detalhes.
Para Jobs serverless, é possível obter métricas de tarefa adicionais (Pré-visualização Pública) e métricas de desempenho de query (beta).
View métricas para tarefas de transmissão
Visualização
A observabilidade de transmissão para Jobs do LakeFlow está em Pré-visualização Pública.
A IU do Lakeflow Jobs fornece métricas de observabilidade de transmissão para cargas de trabalho de transmissão na página Detalhes da execução do Job . Essas métricas incluem segundos de backlog, bytes de backlog, registros de backlog e arquivos de backlog para fontes compatíveis com o Spark transmissão estructurada, incluindo Apache Kafka, Amazon Kinesis, Auto Loader, Google Pub/Sub e tabelas Delta. Ao exibir os detalhes da execução de uma tarefa, as métricas aparecem como gráficos no painel à direita. Cada gráfico mostra valores máximos agregados por minuto, para até as 48 horas anteriores.
Cada fonte de transmissão oferece suporte apenas a métricas específicas. A UI exibe apenas as métricas compatíveis com uma fonte de transmissão. A tabela a seguir mostra as métricas disponíveis para fontes de transmissão compatíveis:
Origem | bytes de backlog | registros de backlog | segundos de backlog | arquivos de backlog |
|---|---|---|---|---|
Kafka | ✓ | ✓ | ||
Kinesis | ✓ | ✓ | ||
Delta | ✓ | ✓ | ||
Carregador automático | ✓ | ✓ | ||
Google Pub/Sub | ✓ | ✓ |
Você também pode especificar limites para cada métrica de transmissão e configurar notificações se uma transmissão exceder um limite durante uma execução de tarefa. Consulte Configurar notificações para jobs lentos.
Para exibir métricas de streaming para uma execução de tarefa que transmite dados de uma das fontes compatíveis com Transmissão Estruturada:
- Na página Detalhes da execução do Job , clique na tarefa para a qual você deseja view as métricas.
- Clique na tab Métricas no painel Execução de tarefa .
- Para abrir o gráfico para uma métrica, clique em
ao lado do nome da métrica.
- Para ver as métricas para uma transmissão específica, insira o ID da transmissão na caixa de texto Filtrar por stream_id . É possível encontrar o ID da transmissão na saída para a execução do Job.
- Para alterar o período para os gráficos de métricas, use o menu suspenso de tempo.
- Para navegar pelas transmissões se a execução contiver mais de dez transmissões, clique em Avançar ou Anterior .
Limitações de observabilidade de transmissão
- O Databricks atualiza as métricas a cada minuto, a menos que uma execução tenha mais de quatro transmissões. Se uma execução tiver mais de quatro transmissões, o Databricks atualiza as métricas a cada cinco minutos.
- A Databricks coleta métricas apenas para as primeiras cinquenta transmissões em cada execução.
- Databricks coleta métricas em intervalos de um segundo. As métricas podem não estar visíveis se sua configuração
triggerIntervalfor inferior a um segundo. - A maioria das fontes de dados coleta métricas de transmissão por default. No entanto, para outros, você deve habilitar este recurso. Se sua fonte de dados não estiver coletando métricas de transmissão, defina o sinalizador
spark.sql.streaming.metricsEnabledcomoTrue.
View métricas de desempenho de query para Jobs serverless
Beta
Este recurso está em Beta. Os administradores de workspace podem controlar o acesso a este recurso na página **Pré-visualizações**. Consulte Gerenciar prévias do Databricks.
Ao executar um job serverless, a Databricks mostra métricas selecionadas de Perfil de Query e percepções de desempenho diretamente na UI de execução do job, para que você possa identificar problemas de desempenho sem abrir um perfil de query separado para cada query. Use estas métricas para investigar por que uma execução está lenta, ou para comparar o desempenho entre duas execuções.
Antes de visualizar essas métricas:
- A pré-visualização Observabilidade de desempenho aprimorada do Lakeflow deve ser habilitada para seu workspace. Os administradores do workspace podem habilitá-lo na página de pré-visualizações.
- Seu workspace deve ter acesso a percepções de desempenho de query. Sem ele, os indicadores de lâmpada não aparecem, embora as métricas agregadas (linhas lidas, linhas gravadas e contagem total de consultas) ainda sejam exibidas.
Databricks exibe as seguintes métricas, agregadas das queries em uma execução de Job serverless:
- Linhas lidas e linhas escritas por execução de tarefa.
- Número total de queries por execução de tarefa.
- Um indicador de percepções de desempenho (lâmpada) em uma tarefa quando uma ou mais queries nessa tarefa tiverem percepções de desempenho.
Essas métricas aparecem em diferentes locais, dependendo de como você está visualizando a execução:
Onde aparece | O que você vê |
|---|---|
Barra lateral de execução de tarefa. | Linhas lidas e gravadas, contagem total de queries e um indicador de percepções para a execução da tarefa. |
Visualização DAG | Um ícone de lâmpada em um nó de tarefa quando qualquer uma das consultas da tarefa tiver percepções de desempenho. |
View da linha do tempo | Uma lâmpada ao lado do nome da tarefa com uma contagem de percepções nas queries da tarefa, além de uma lâmpada em cada query dentro da tarefa que possui percepções. |
View em lista | Uma lâmpada na coluna **Percepções** quando qualquer uma das queries da tarefa tiver percepções de desempenho. Se não vir esta coluna, adicione-a no seletor de colunas. |
A timeline view agora está disponível para jobs de tarefa única como parte desta Beta. Anteriormente, apenas jobs multitarefa tinham uma timeline view.
Comportamento de clique e passar o mouse:
- Na view Linha do tempo , passe o mouse sobre uma tarefa para ver suas métricas agregadas e quaisquer percepções de desempenho para as queries da tarefa.
- Na DAG view ou List view , clique na lâmpada de uma tarefa para abrir a Timeline view com as queries dessa tarefa expandidas.
- Na Timeline view , clique no texto da query de uma query que tenha uma lâmpada para abrir um painel com uma visão geral das percepções de desempenho dessa query.
Para investigar por que um job serverless executa mais lentamente do que o esperado:
-
Abra a execução do job.
-
Mude para a view de Linha do Tempo .
-
Identifique tarefas que estão demorando mais do que o esperado com base na distribuição de duração.
-
Passe o cursor sobre uma tarefa de execução prolongada para ver:
- **Linhas lidas** e **linhas escritas**: verifique se a tarefa processou mais dados do que o normal.
- Número total de queries : identifique as alterações na forma da carga de trabalho.
- O indicador de percepções de desempenho : identifique regressões ou alterações de código ineficientes.
-
Se um volume de dados maior explicar o aumento da duração, a desaceleração pode ser esperada. Caso contrário, expanda a tarefa na linha do tempo para ver suas queries individuais. As queries com percepções detectadas mostram uma lâmpada ao lado delas.
-
Clique no texto da query de uma query com uma lâmpada para abrir um painel com as percepções de desempenho para essa query.
-
Aplique as alterações recomendadas e execute novamente o Job para confirmar se o problema foi resolvido.
Para obter a lista completa de percepções e o que significam, consulte Percepções de desempenho de query. Para obter detalhes mais aprofundados da execução da query, consulte Perfil de query.
Comparando duas execuções
Essas mesmas métricas tornam simples identificar diferenças entre uma execução lenta e uma execução rápida anterior. Abra as duas execuções lado a lado e compare:
- **Linhas lidas** e **linhas gravadas** para identificar alterações no volume de dados.
- Número total de queries para identificar alterações no formato da carga de trabalho.
- Percepções de desempenho para identificar ineficiências introduzidas desde a execução anterior.
Limitações de métricas de desempenho de query
- Estas métricas e percepções aplicam-se apenas a Jobs serverless do Lakeflow. Execuções de job em compute clássico não mostram estas informações.
- O Databricks agrega métricas das primeiras 100 queries em uma execução de Job. Se uma execução tiver mais queries, os totais refletem apenas as primeiras 100.