
Suponha que eu esteja executando o Tomcat com -Xms256m -Xmx1024m, mas gostaria de aumentar meu uso de heap.
Qual é o maior tamanho de heap seguro que posso alocar?
Para efeitos desta questão, suponha que o sistema tenha 5 GB de RAM e seja um sistema z/Linux. No entanto, se possível, gostaria de uma resposta mais ampla.
Além disso, se for uma duplicata, desculpe. Fiquei surpreso por não encontrar mais informações sobre esse tipo de coisa.
Não é duplicado de:eu olheiaqui, no entanto, sua resposta parece ser apenas um palpite, sem respaldo. As outras respostas nessa pergunta não são muito claras e/ou específicas para o meu problema. 1) Não estou em um sistema de janela de 32 bits, 2) Não estava perguntando sobre o PermGen, embora possa ser mencionado em uma boa resposta, 3) A terceira resposta disse "Finalmente, você também deve levar em consideração o outro coisas que estão rodando no servidor e que também precisam de RAM" mas esta não é uma resposta precisa. Estou apenas preocupado com o uso de memória do sistema operacional por enquanto.
Editar: Este é um sistema dedicado, por isso estou mais preocupado com o uso de memória do sistema operacional. Não estou preocupado com outros programas.
CG
Responder1
O tamanho máximo de heap que você deseja atribuir será baseado na utilização de seus próprios recursos pelo sistema, outros serviços que você está executando, etc. Você deseja atribuir um tamanho de heap que deixe memória suficiente disponível para o sistema operacional para evitar paginação de memória desnecessária. Isso é mais um problema no Windows, mas o problema também é visto no Linux (sou mais especialista em Windows do que em Linux, sinto muito por isso).
Primeiro, você deseja verificar a utilização de recursos dos seus sistemas:http://www.cyberciti.biz/faq/linux-check-memory-usage/
A seguir, você deseja ver como seu arquivo de paginação está configurado:http://www.cyberciti.biz/faq/linux-check-the-size-of-pagesize/
Então, você terá que tentar configurações diferentes com base nas informações coletadas anteriormente e observar a utilização do arquivo de paginação:http://www.cyberciti.biz/faq/linux-check-swap-usage-command/
Se o seu arquivo de paginação estiver sendo muito utilizado, o tamanho do heap é muito grande. Se estiver sendo utilizado muito pouco ou nada, você pode tentar aumentar o tamanho do heap para melhorar o desempenho (os resultados reais do desempenho variam entre os diferentes aplicativos Java, e aumentar o tamanho do heap pode piorar o desempenho de alguns aplicativos devido à maneira como eles são usados). estão programados).
Você deseja certificar-se de atribuir a quantidade apropriada de memória para que seu sistema operacional tenha RAM livre suficiente para manter facilmente o arquivo de paginação e seu aplicativo tenha bastante memória atribuída a ele. No Windows, tento manter pelo menos 25% de RAM livre sob carga. Eu tentaria configurações diferentes e observaria o desempenho do sistema.
MAIS UMA NOTA IMPORTANTE: No Java 8, você não precisa definir esses itens, o Java 8 parece ser melhor em manter esses valores por si só, em vez de atribuí-los estaticamente.