Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Monitoramento da JVM

Última atualização: Jun 27, 2026

Quando aplicações Java apresentam respostas lentas ou indisponibilidade, a causa raiz frequentemente reside em problemas no nível da JVM: pausas na coleta de lixo (GC) que interrompem o processamento de requisições, vazamentos de memória que consomem gradualmente o espaço do heap ou contenção de threads que bloqueia operações concorrentes. O monitoramento da JVM no Application Monitoring rastreia a atividade de GC, o uso de memória e os estados das threads, fornecendo as métricas necessárias para detectar e diagnosticar esses problemas antes que afetem os usuários finais.

Pré-requisitos

  • Uma aplicação conectada ao ARMS Application Monitoring com um agente Java instalado

Visualizar métricas da JVM

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Na página Application List, selecione uma região na barra de navegação superior e clique em nome da aplicação desejada.

    Nota

    Os ícones na coluna Language indicam a linguagem da aplicação:

    Java icon: Aplicação Java

    Go icon: Aplicação Go

    Python icon: Aplicação Python

    Hífen (-): aplicação monitorada no Managed Service for OpenTelemetry.

  3. No painel de navegação à esquerda, clique em Application Details.

  4. Na página Application Details, selecione a instância desejada no painel à esquerda e clique em aba JVM monitoring.

    JVM monitoring tab

A aba JVM monitoring exibe gráficos de séries temporais para atividade de GC, memória heap, metaspace, memória non-heap, buffer direto e threads da JVM.

Alternar entre visualizações instantâneas e acumuladas

Clique em Instantaneous ou Accumulated no canto superior direito dos gráficos Instantaneous Count e Instantaneous Duration para alternar entre dados de GC por intervalo e cumulativos.

Mostrar ou ocultar métricas individuais

Clique em nome de uma métrica (por exemplo, FullGC Count) em qualquer gráfico para mostrar ou ocultar essa métrica.

Nota

Cada gráfico deve exibir pelo menos uma métrica. Se apenas uma métrica estiver visível, não será possível ocultá-la.

Comparar métricas entre intervalos de tempo

Clique em ícone chart statistics icon em um gráfico para visualizar estatísticas de métricas de um período específico ou comparar o mesmo período em dias diferentes.

Visualizar APIs relacionadas

Clique em ícone View API no canto superior direito dos seguintes gráficos para ver detalhes no nível da API relacionados a cada métrica:

  • Heap Memory Details / 1 Min

  • Metadata Details / 1 Min

  • Non-Heap Memory / 1 Min

  • Direct Buffer / 1 Min

  • JVM Threads / 1 Min

Referência de métricas

Métricas de GC

Os gráficos Instantaneous Count e Instantaneous Duration mostram a atividade de GC. Ambos suportam as visualizações Instantaneous (por intervalo) e Accumulated (cumulativa).

Métrica

Descrição

Contagem de Full GC

Número de coletas de lixo completas no heap. Full GCs frequentes geralmente indicam pressão no heap ou vazamento de memória.

Contagem de Young GC

Quantidade de coletas de lixo na geração jovem.

Duração do Full GC

Tempo gasto em Full GCs. Pausas longas aumentam diretamente a latência de resposta da aplicação.

Duração do Young GC

Tempo despendido nas coletas de lixo da geração jovem.

Nota

As medições de latência de GC variam conforme o coletor:

  • ZGC e Shenandoah: Estes coletores executam a maior parte do trabalho de GC simultaneamente às threads da aplicação, minimizando pausas. Pauses mede a duração do stop-the-world (STW), tipicamente abaixo de 1 ms. Cycles mede a duração total do GC, incluindo as fases concorrentes.

  • Todos os outros coletores (como G1, CMS e Parallel): As métricas de latência medem apenas a duração do STW — o tempo durante o qual todas as threads da aplicação Java ficam suspensas para a coleta de lixo.

Memória heap

O gráfico Heap Memory Details / 1 Min detalha o uso do heap por pool de memória.

Métrica

Descrição

Memória heap total

Total de memória heap atualmente utilizada pela JVM (bytes).

Geração antiga

Memória heap ocupada por objetos de longa duração (bytes). Um crescimento constante sem aumento correspondente no volume de dados pode indicar vazamento de memória.

Geração jovem (survivor space)

Memória heap no survivor space, que retém objetos que sobreviveram a pelo menos um Young GC (bytes).

Geração jovem (eden space)

Memória heap no eden space, onde novos objetos são alocados (bytes).

Metaspace

O gráfico Metadata Details / 1 Min rastreia o armazenamento de metadados de classes.

Métrica

Descrição

Tamanho do metaspace

Memória utilizada pelo metaspace da JVM (bytes). O metaspace armazena metadados de classes e substituiu a geração permanente (PermGen) no JDK 8. Crescimento ilimitado pode indicar vazamento de classloader.

Memória non-heap

O gráfico Non-Heap Memory / 1 Min monitora a memória alocada fora do heap.

Métrica

Descrição

Memória non-heap máxima

Limite superior de memória non-heap disponível para a JVM (bytes).

Memória non-heap utilizada

Memória non-heap atualmente em uso (bytes).

Buffer direto

O gráfico Direct Buffer / 1 Min rastreia buffers off-heap alocados por meio de java.nio.ByteBuffer.allocateDirect().

Métrica

Descrição

Buffer direto total

Capacidade total dos buffers diretos de bytes (bytes).

Buffer direto utilizado

Memória de buffer direto atualmente em uso (bytes).

Threads da JVM

O gráfico JVM Threads / 1 Min exibe os estados das threads com base na enumeração java.lang.Thread.State.

Métrica

Descrição

Total de threads

Número total de threads ativas. Um aumento sustentado sem elevação correspondente na carga pode indicar vazamento de threads.

Threads em deadlock

Threads em estado de deadlock. Qualquer valor acima de zero exige investigação imediata.

Novas threads

Threads criadas, mas ainda não iniciadas.

Threads bloqueadas

Threads bloqueadas aguardando um lock de monitor. Contagens elevadas indicam contenção de locks.

Threads executáveis

Threads em execução ativa ou prontas para executar.

Threads finalizadas

Threads que concluíram a execução.

Threads em espera temporizada

Threads aguardando com um tempo limite definido (por exemplo, Thread.sleep() ou Object.wait() temporizado).

Threads em espera

Threads aguardando indefinidamente que outra thread execute uma ação.

Memória da JVM e o comando top

O Application Monitoring coleta dados de memória da JVM por meio do Java Management Extensions (JMX), que exclui algumas áreas de memória non-heap dos processos Java. Por esse motivo, a soma da memória heap e non-heap exibida no Application Monitoring difere significativamente do Resident Memory Size em KiB (RES) relatado pelo comando top.

Para obter um detalhamento completo dessa diferença, consulte Detalhes da memória da JVM.