alta utilização de CPU do JBOSS

0

Meu aplicativo está instalado no JBOSS EAp 6.1. Poucos dias atrás descobrimos que a lentidão do aplicativo ou o usuário final não conseguiam acessar o aplicativo.

Pegamos ps -aux logs e uma das saídas está abaixo.

[Mon Jun 12 08:55:29.218 2017] 500      46257 90.7 10.2 22713508 6779044 ?    Sl   Apr26 61791:48 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/bin/java -D[Standalone] -server -XX:+UseCompressedOops -Xms2048m -Xmx4096m -XX:MaxPermSize=512m -Djava

Parece que esse processo de java estava sobrecarregando minha CPU. mas também no modo Sl. Esta é a minha suposição.

Esta pode ser a razão do problema com o aplicativo?

Qual poderia ser o motivo do alto uso de cpu?

Qual é a função desse processo no servidor de aplicativos JBOSS?

Não fizemos o download do thread e dos logs do Gc (os logs do gc não foram ativados depois que verificamos) e reiniciámos o servidor. Agora não há registros.

    
por user236419 16.06.2017 / 15:20

1 resposta

0

A saída que você está mostrando não mostra nenhum aplicativo, exceto o javavm sendo executado como um servidor.

A alta carga da CPU é silenciosa, muitas vezes vista em aplicativos Java quando a memória usada está quase no limite. A coleta de lixo é executada o tempo todo para liberar memória novamente. Isso diminui o desempenho do aplicativo e utilizou quase todos os ciclos de CPU.

Já que você já matou o processo, as chances de descobrir isso se foram.

Para o futuro, minha sugestão é configurar uma maneira de monitorar a JVM:

  • Adicionar GCLog é uma abordagem simples.
  • Adicionando o JMX Remote Monitoring (adicione autenticação!) veja: link
  • Permitir que um agente de terceiros se conecte diretamente à máquina virtual java.

Se você estiver novamente nessa situação, poderá fazer o seguinte:

Obtendo um Java Stack-Trace da instância do Java:
(Java rodando com o PID 46257)
jstack -l 46257 >jstack-output.log

Em seguida, faça um Heap-Dump para análises adicionais:
jmap -dump:live,format=b,file=jmap-heapdump.hprof 46257

A análise dos hprof-heapdumps pode ser feita por várias ferramentas (google: java heapdump analyzer). Isso pode ajudá-lo a obter uma causa melhor para a alta carga de CPU.

    
por 16.06.2017 / 19:36