JAVA VIRTUAL MACHINE CONFIGURAÇÕES
Por: David Cambier • 18/6/2018 • Relatório de pesquisa • 808 Palavras (4 Páginas) • 277 Visualizações
JAVA VIRTUAL MACHINE CONFIGURAÇÕES
O problema mais comum com o JBoss, é a falta de recursos disponíveis. Em muitos casos, isto é, devido ao tamanho do Heap Java, ou não está sendo configurado de forma alguma, ou não está configurado corretamente.
Uma das partes mais importantes do ajuste do JBoss para um melhor desempenho é otimizar as configurações do Java Heap. O tamanho do Java Heap é a quantidade de memória alocada para a JVM. O Heap é onde os objetos Java vivem, e deve haver memória suficiente para a JVM para suportar as necessidades de seu sistema (depende do tamanho do banco de dados)
Como encontrar as configurações corretas do Java Heap
Por padrão, o JBoss está configurado para ter um tamanho de Heap inicial de 512 MB e um tamanho de Heap máximo de 512 MB. E necessário ajustar esse valor para otimizar corretamente o JBoss.
Para encontrar o tamanho correto do heap, você terá que parar o JBoss (e outros softwares no servidor) e usar o comando:
- Linux free -m
- Windows systeminfo
para ver a memória em uso e, em seguida, multiplicar esse valor por dois, e depois subtrair esse resultado da RAM total.
Este número será aproximadamente o que você precisa definir para o tamanho máximo do heap.
[pic 1]
No exemplo, temos 5.724 Mo em uso. 5.724*2 = 11.448
16.276 - 11.448 = 4.828. ==== >>>> Heap = 4.096 (múltiplo de 1.024)
Lembre-se, esta é apenas uma estimativa aproximada. Você pode achar que precisa ajustar esse número para cima ou para baixo conforme necessário, dependendo da utilização de seu sistema e do tamanho do seu banco de dados.
Geralmente, o tamanho máximo do Heap deve estar apenas abaixo da metade da quantidade de memória disponível. Você pode, naturalmente, ajustar esse valor mais ou menos, mas você pode ter que experimentar para determinar o verdadeiro tamanho ótimo do Heap.
Se sua JVM ficar sem espaço, a mensagem java.lang.OutOfMemoryError vai aparecer no log Jboss. Esta mensagem permite que você consiga ajustar suas configurações de Heap, considerar atualizar os parâmetros de JVM.
Heap Size
O tamanho do heap da JVM determina a quantidade de memória permitida para a aplicação consumir e é controlada pelos seguintes parâmetros:
-Xms - Define o tamanho mínimo do heap permitido.
-Xmx - Define o tamanho máximo do heap permitido.
Garbage Collection
Large Pages
Large Pages são páginas contíguas de memória que são muito maiores do que o normalmente definido no nível do sistema operacional. Ao utilizar páginas grandes, a JVM terá acesso a memória que é muito mais eficientemente referenciada e memória que não pode ser trocada, resultando em um comportamento mais consistente da JVM.
-XX: + UseLargePages - Instrui a JVM a alocar memória em páginas grandes. Essas páginas devem ser configuradas no nível do sistema operacional para que este parâmetro funcione com sucesso.
Configuração do Servidor
Este parâmetro relaciona-se com a compilação JIT (Just-In-Time), que requer tempos de carregamento prolongados durante a inicialização, mas fornece benefícios extensivos de compilação e otimização após o processo de inicialização ser concluído.
-server - Ativa o modo servidor para a JVM.
Garbage Collector
Coletor paralelo
O coletor paralelo maximiza o rendimento ao custo de todas as coleções que fazem uma pausa na JVM. Ele se comporta como o tradicional, serial, colecionador, mas usa múltiplos segmentos de coleta de lixo que funcionam em paralelo para coletar objetos não referenciados em ambas as gerações antigas e novas.
-XX: + UseParallelGC - Esta opção habilita o coletor paralelo na JVM. Para JVMs com o servidor especificado, este é o coletor padrão.
-XX: MaxGCPauseMillis =
...