O que faria com que o JBoss ocupasse mais 4 GB de memória do que o que é alocado?

1

Parte relevante da linha de inicialização:     java -server -Xms10G -Xmx10G -XX: PermSize = 1G -XX: MaxPermSize = 1G

Esta instância acabou ocupando 16 GB de memória e 10 GB de swap antes de matar o servidor.

Alguma idéia do que poderia causar isso?

Este é o único aplicativo importante em execução em um sistema RedHat com 16 GB de RAM e 10 GB de troca.

    
por Ichorus 09.04.2010 / 22:22

1 resposta

2

Meu palpite seria threads descontrolados talvez, provavelmente provavelmente melhor estouro de pilha em como fazer o perfil de uso de memória para um aplicativo Java e procurar por vazamentos de memória.

Lembre-se de que as opções -Xms e -Xmx são apenas para heap. Há outras coisas que ocupam memória, como pilhas de encadeamentos, etc. Então, talvez houvesse tópicos de fuga?

Você pode querer olhar para o ulimit para limitar o que este aplicativo pode fazer e começar a usar algo como o Nagios para alertá-lo quando o uso da memória ficar fora de controle. Você está executando o jvm como root?

    
por 10.04.2010 / 00:18