Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Monitorar desempenho do job

Última atualização: Jun 27, 2026

Diagnostique gargalos de desempenho em deployments em execução com gráficos de chama, profiling de memória, amostragem de threads e thread dumps no nível da JVM.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Permissões no nível de namespace para o Realtime Compute for Apache Flink concedidas à sua conta Alibaba Cloud ou usuário RAM. Conceder permissões de namespace.

Limitações

  • Somente o Ververica Runtime (VVR) 4.0.11 ou superior oferece suporte ao monitoramento de desempenho de deployments.

  • Os dados de desempenho estão disponíveis apenas para deployments em execução. O sistema não retém dados históricos de deployments.

Escolha uma ferramenta

Comece pela ferramenta correspondente ao sintoma investigado.

Sintoma

Ferramenta

O que ela mostra

Alto uso de CPU ou throughput lento

Flame Graph

Métodos com uso intensivo de CPU e respectivas pilhas de chamadas

Suspeita de pressão de memória

Flame Graph (modo Alloc) ou Memory

Alocação de memória por função ou uso de memória da JVM por espaço

Contenção de threads ou suspeita de deadlocks

Flame Graph (modo Lock) ou Threads

Padrões de contenção de locks ou rastreamentos de pilha por thread via amostragem

Necessidade de um snapshot completo de todos os estados das threads

Thread Dump

Todas as pilhas de threads em um único momento

Acessar as ferramentas de desempenho

  1. Faça login no console do Realtime Compute for Apache Flink.

  2. Localize o workspace e clique em Console na coluna Actions.

  3. No painel de navegação à esquerda, escolha O&M > Deployments.

  4. Clique em nome do deployment e, em seguida, na aba Logs.

  5. Acesse as ferramentas de desempenho da seguinte forma:

    • Flame Graph, Memory ou Threads: Clique em aba Job Manager ou Running Task Managers e, depois, em Debug.

    • Thread Dump: Clique em aba Running Task Managers e, em seguida, no valor da coluna Path, ID.

Flame Graph

Gráficos de chama representam pilhas de chamadas como barras horizontais em camadas. Cada barra corresponde a um quadro de pilha; barras mais largas indicam maior tempo de CPU e sinalizam possíveis gargalos. A camada inferior representa o ponto de entrada, enquanto as superiores correspondem a chamadas mais profundas.

A documentação do Apache Flink sobre Flame Graphs aborda os conceitos subjacentes.

Modos de gráfico de chama

Modo

O que ele captura

CPU

Rastreamentos de pilha de threads em execução ativa. Quadros mais largos indicam maior uso de CPU.

Alloc

Memória alocada por cada função. Identifica funções que geram maior pressão no heap.

Lock

Padrões de contenção de locks e deadlocks. Destaca funções aguardando aquisição de locks.

ITimer

Consumo de CPU em todas as threads dentro de um intervalo de amostragem. Semelhante ao modo CPU, mas não requer suporte a perf_events.

Identificar gargalos com gráficos de chama

Flame graph example

  1. Procure quadros largos. Um quadro largo significa que a função consome grande parte do tempo de CPU, sendo o indicador de hot-spot mais comum.

  2. Verifique a frequência dos quadros. Quadros recorrentes nas amostras indicam funções chamadas frequentemente, o que pode causar degradação cumulativa de desempenho.

  3. Interprete a posição vertical. Quadros largos próximos à base sugerem problemas no caminho principal da aplicação. Quadros largos no topo apontam para uma função específica nas camadas mais profundas da pilha de chamadas.

  4. Otimize os hot-spots. Revise o código das funções problemáticas. Correções comuns incluem reduzir iterações de loops, melhorar estruturas de dados e minimizar sincronizações.

  5. Compare o antes e o depois. Gere um novo gráfico de chama após a otimização e compare-o com o original para verificar a correção.

Nota

Gráficos de chama usam dados amostrados e podem não capturar todo o contexto de execução. Combine-os com as outras ferramentas desta página para um diagnóstico mais preciso. Funções não Java aparecem como "unknown"; a discussão do async-profiler explica o motivo.

Memory

A aba Memory exibe o uso de memória nos espaços da JVM (heap, non-heap, metaspace, entre outros). Utilize-a para identificar vazamentos de memória, coleta de lixo excessiva ou espaços próximos aos limites.

Threads

A amostragem de threads captura rastreamentos de pilha durante uma janela de tempo, mostrando a atividade de cada thread durante um problema de desempenho.

Amostragem de thread

Acesse a aba Debug do componente a inspecionar:

  • JobManager: Na aba Logs, clique em aba Job Manager e, em seguida, em Debug.

  • TaskManager: Na aba Logs, clique em aba Running Task Managers, no valor da coluna Path, ID e, depois, em Debug.

Na aba Threads, localize o operador a inspecionar e clique em Sample na coluna Actions. Aguarde a conclusão da amostragem e analise as pilhas de threads.

Thread sampling example

Este exemplo mostra pilhas de threads acessadas pelo Gemini State.

Thread Dump

Um thread dump captura o estado de todas as threads em um único momento. Use-o para detectar deadlocks, identificar threads bloqueadas ou verificar interações com o backend de estado.

Capturar um thread dump

  1. Na aba Logs, clique em aba Running Task Managers e, em seguida, no valor da coluna Path, ID.

  2. Clique em aba Thread Dump.

  3. Pesquise o operador que processa dados de estado. Verifique se as pilhas de threads sob o operador mostram interações com GeminiStateBackend ou RocksDBStateBackend.

Thread dump example

Nota

Encontre o nome do operador na aba Status.

Operator name on Status tab

Referências