devterview_$ iniciar simulação

Cenário: pausas de latência atribuídas ao garbage collector

DifícilSêniorRuntime / JVM

Pergunta

Um serviço Java tem picos de latência (p99) que coincidem com atividade do garbage collector. Como você raciocina sobre a causa e o que ajusta?

Resposta esperada

Primeiro confirmar com logs de GC (`-Xlog:gc`) ou APM: as pausas batem com coletas full/major? Causas comuns: heap subdimensionado forçando coletas frequentes; muita alocação de objetos de vida curta (churn) pressionando a young gen; objetos promovidos cedo pra old gen por young gen pequena; ou um leak que enche a old gen e leva a full GC recorrente. Ajustes/decisões: subir o heap se há espaço na máquina; escolher um coletor de baixa pausa (G1, ZAP/ZGC, Shenandoah) pra p99 sensível; reduzir alocação no caminho quente (reuso, evitar boxing, streaming em vez de listas gigantes); investigar leak com heap dump se a memória cresce monotonicamente. A resposta boa começa medindo (qual GC, qual geração, frequência) antes de mexer em flag.

Por que perguntam isso

Cenário sênior. O que separa: começar por medição (logs de GC, qual geração) em vez de já sair setando `-Xmx`. Conhecer G1/ZGC pra p99 é bônus.

#gc#jvm#latencia#heap
publicidade

Relacionadas