← Middleware: compreender e operar a cadeia
02 / 12 · 20 MIN

Investigar JVM, heap e pausas

Distingue consumo de memória, coleta de lixo e evidência de bloqueio.

O processo é maior do que o heap

Heap é a área de objetos gerida pela JVM, mas o processo também usa memória para stacks, classes, buffers e componentes nativos. Definir um máximo de heap não limita todo o consumo do processo a esse valor. Considera os limites do host ou contentor e a memória não heap ao planear capacidade. Não copies argumentos de uma JVM diferente sem confirmar suporte e versão.

Padrões de consumo e de coleta

Uma curva de utilização a subir e descer pode ser comportamento normal de alocação e coleta. Suspeita de retenção quando o nível após coleta cresce de forma sustentada sob carga comparável. Correlaciona duração e frequência das pausas com latência e throughput. Um heap maior pode alterar frequência e duração de coleta, mas não corrige automaticamente retenção indevida de objetos.

Recolher o artefacto certo

Um thread dump mostra estados e stacks num instante; várias amostras ajudam a perceber progresso ou espera persistente. Um heap dump serve outra investigação e pode ser grande, sensível e ter impacto. Decide previamente ferramenta, formato, espaço, autorizações e destino seguro. Os nomes e opções de diagnóstico variam entre JVMs e versões. Usa os procedimentos suportados da plataforma instalada.

Aplicação no trabalho

Antes de recolher diagnóstico, identifica JVM, versão e limite do processo ou contentor. As referências HotSpot deste percurso exemplificam mecanismos de diagnóstico, não comandos universais para WebSphere. Se o heap após GC está estável mas a memória total cresce, observa threads, buffers e memória nativa. Define o que a recolha deverá confirmar, o impacto aceitável e onde guardar dados potencialmente sensíveis.

NA PRÁTICA

Após cada coleta, o heap volta aproximadamente ao mesmo nível, mas há pausas longas durante um pico. Isto justifica investigar comportamento de GC e carga; não prova uma fuga de memória. Se o nível pós-coleta subir dia após dia com carga comparável, a hipótese de retenção ganha suporte.

Armadilhas comuns

Confundir heap e processo; usar ferramentas de outra JVM sem confirmar compatibilidade.

Tópicos relacionados: Relacionar threads, pools e dependências · Operar TLS, certificados e configuração

Leva esta ideia contigo

Distingue heap, memória total, pausa e retenção; escolhe o diagnóstico pela hipótese.

Criar conta

Referência: Java diagnostic tools · DR Middleware 2026.4; HotSpot JDK 25; JDBC 25; PostgreSQL 18; RabbitMQ 4.3; OpenSSL 3.5; explicitly scoped runtime references