minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Referências:
①Use mtrace para rastrear vazamentos de memória fora do heap da JVM
②Um caso de solução de problemas de alto uso de memória Java
Obtenha o local do vazamento de memória (consulte os materiais de referência ① para comandos detalhados)
Use jna para ativar o mtrace no código Java para rastrear a alocação de memória
Use o comando mtrace para analisar arquivos de log e obter pontos de chamada de vazamento de memória.
arthas verifica a pilha de chamadas do ponto de chamada de vazamento de memória (você pode usar o endereço do ponto de chamada diretamente, nenhum nome de função é necessário)
Obtenha conteúdo de vazamento de memória (consulte os materiais de referência ② para comandos detalhados)
Ao testar um serviço offline, quando o QPS está alto, a memória ocupada pela área nio.directbuffer da máquina aumentará repentinamente, fazendo com que ocorra OOM no contêiner.
Usando as ideias de solução de problemas acima, finalmente determinamos que nossa estrutura RPC gerou uma grande quantidade de dados na área do directbuffer. Na verdade, quando o QPS é alto, o número de threads seletores é pequeno e a capacidade de consumo é insuficiente, resultando em um backlog de dados de solicitação e resposta na área do directbuffer.