Pergunta

Eu estou usando uma aplicação ICEFaces que corre ao longo JBOSS, meu atual heapsize está definido para

-Xms1024m -Xmx1024m XX: MaxPermSize = 256m

qual é a sua recomendação para ajustar os parâmetros de memória para JBoss AS 5 (5.0.1 GA) JVM 6?

Foi útil?

Solução

De acordo com esta artigo :

AS 5 é conhecido por ser ganancioso quando se trata de PermGen . Ao iniciar, que muitas vezes joga OutOfMemoryException: PermGen Error.

Isto pode ser particularmente irritante durante o desenvolvimento quando você estiver implantando quente frequentemente uma aplicação. Neste caso, JBoss QA recomenda a aumentar o tamanho permgen, permitir que as classes descarga e varredura permgen :

-XX:PermSize=512m -XX:MaxPermSize=1024 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

Mas isso é mais FYI, eu não estou sugerindo para aplicar esta configuração cegamente (como pessoas escreveram comentários, "se não está quebrado, não conserte").

Quanto à sua tamanho da pilha, tenha sempre em mente: Quanto maior a pilha, mais o grande GC . Agora, quando você diz "foi definitivamente muito pequeno", eu realmente não sei o que isso significa (o que erros, sintomas, etc). Para meu conhecimento, um monte 1024m é realmente muito grande para um webapp e deve realmente ser mais do que suficiente para a maioria deles. Só cuidado com a maior duração GC.

Outras dicas

Heap:. Comece com 512 MB, defina a tampa para onde você acredita que seu aplicativo nunca deve ficar, e não para fazer sua troca início do servidor

permgen: Isso é geralmente suficiente estável, uma vez que o aplicativo lê todas as classes usadas no aplicativo. Se você testou o aplicativo e funciona com 256 MB, em seguida, deixá-lo assim.

@wds: Definitivamente não é uma boa idéia para definir o máximo de heap mais alto possível por duas razões:

  1. Pilhas grandes de fazer pleno GC demorar mais tempo. Se você tem PermGen digitalização habilitado, um grande espaço PermGen levará mais tempo para GC também.
  2. JBoss AS no Linux pode deixar alças de E / S não utilizados abrir o suficiente para tornar o Linux limpá-los à força, bloqueando todos os processos na máquina até que seja concluído (pode demorar mais de 1 minuto!). Se você esquecer de desligar o scanner implantar quente, isso vai acontecer muito mais freqüência.

Isso aconteceria talvez uma vez por semana no meu aplicativo até que eu:

  1. diminuiu -Xms a um ponto onde a inicialização JBoss AS estava começando a desacelerar
  2. diminuiu -Xmx a um ponto onde GCs completos aconteceu com mais frequência, de modo que o Linux I / O identificador de limpeza parou

Para os desenvolvedores que eu acho que é bom para aumentar PermGen, mas na produção, você provavelmente vai querer usar apenas o que é necessário para evitar pausas do GC longos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top