Travamento persistente da Sun JVM [fechado]

2

Eu tenho experimentado muitas falhas da Sun JVM no Ubuntu Server 10.04.1 e 10.04.2. Os acidentes parecem acontecer em intervalos aleatórios. Às vezes, eles ocorrem quando o servidor está estressado, outras vezes quando não há carga no servidor.

Estou executando um host com quatro máquinas virtuais usando o KVM como a tecnologia de virtualização. Cada um dos convidados está configurado para ter 1 gigabyte de memória.

O host:

  

lei @ gandalf: ~ $ uname -a   Linux gandalf 2.6.32-27-server # 49-Ubuntu SMP Qui Dez 2 02:05:21 UTC 2010 x86_64 GNU / Linux

E cada convidado:

  

confluence @ lw-confluence: ~ $ uname -a   Linux lw-confluence 2.6.32-24-server # 43-Ubuntu SMP Qui Set 16 16:05:42 UTC 2010 x86_64 GNU / Linux

Em 3 dos convidados, estou executando uma instância do Tomcat com um único aplicativo. Eu estou correndo:

  • 1 instância de Atlassian Jira
  • 1 instância do Atlassian Confluence
  • 1 instância do Magnolia CMS

Eu experimentei falhas aleatórias da JVM em todas as três máquinas. Eu tenho experimentado essas falhas nas versões da JVM 1.6.0_22 (64 bits), 1.6.0_24 (64 bits) e 1.6.0_24 (32 bits).

O travamento parece estar ocorrendo de forma consistente em uma chamada nativa para libjvm.so. Eu acredito que isso está acontecendo quando a JVM solicita a coleta de lixo, mas não tenho certeza disso. Eu tenho uma amostra de alguns dos despejos de memória:

No convidado que está executando o Confluence:

link

No convidado que está executando o Jira:

link

Eu tentei o seguinte até agora:

  • Reinstalando a JVM
  • Atualizando a JVM de 1.6.0_22 para 1.6.0_24
  • Usando uma JVM de 32 bits em vez da versão de 64 bits

Estou com uma pequena perda sobre o que tentar em seguida, então qualquer ajuda seria muito apreciada.

    
por Rob Blake 02.03.2011 / 16:42

1 resposta

0

Na web, há relatos de falhas em operações bastante semelhantes que parecem estar relacionadas a uma configuração de tamanho máximo insalubre do PermGen.

Ver através dos argumentos da VM você parece ter 256 MB permitidos para o PermGen, mas apenas 384/512 MB para o seu heap, o que é pelo menos uma configuração incomum na minha experiência. Para um processo com um heap tão pequeno, eu não esperaria que o PermGen precisaria de qualquer configuração especial (mas isso realmente depende do que o seu processo faz).

No entanto, se você ficar sem ideias, tentarei remover esse argumento da VM:

-XX:MaxPermSize=256m

Isso pode ter seu aplicativo sendo executado em OutOfMemoryError: PermGen size em algum momento - se realmente houver um motivo para essa configuração - mas, pelo menos, não uma falha completa da VM. Dessa forma, você poderia pelo menos solucionar problemas se as falhas estiverem relacionadas a essa configuração.

    
por Oliver 11.03.2011 / 09:27