Qual é a combinação perfeita de variáveis de ambiente para o Tomcat? [fechadas]

1

Eu hospedei uma UI de aplicativo no servidor apache-tomcat. Eu tinha definido variáveis de ambiente no arquivo bin / setenv.sh como:

CATALINA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=1024m

Toda vez que executo uma operação enorme, (ex: Gerando relatório com todos os dados no aplicativo), a exceção 'JavaHeapSpace' está chegando e, em seguida, o aplicativo não está funcionando. Mais uma vez eu tenho que reiniciar o servidor.

Minhas perguntas são:

O que são -Xms e -Xmx?

Quais valores devo colocar para eles, a fim de evitar a exceção JavaHeapSpace?

Quais poderiam ser os valores máximo e mínimo para eles?

Se depender da configuração do servidor, compartilho a configuração do meu servidor abaixo. Por favor, faça sugestões. Eu realmente quero evitar esse problema.

Minha configuração do servidor: RAM: 8 GB Processador: octa core, Disco Rígido: 500GB

Deixe-me saber se vocês precisam de alguma informação sobre o mesmo.

    
por Mr ASquare 21.07.2015 / 12:43

1 resposta

1

What are -Xms and -Xmx?

Xms256m --- > Seleciona um tamanho de heap inicial baixo da JVM para um aplicativo. Portanto, Xms especifica a quantidade de memória, em megabytes, que será usada para iniciar o servidor.

Xmx512m --- > Seleciona o tamanho máximo de heap da JVM permitido para um aplicativo. Portanto, Xmx especifica a quantidade máxima de memória, em megabytes, que será dedicada à execução do servidor.

What values should i put for them in-order to avoid JavaHeapSpace exception?

Isso não depende da configuração do seu sistema, mas do tipo de aplicativo para o qual você está direcionando a execução. Então, todos esses são detalhes desnecessários fornecidos por você. Você deve se importar se sua JVM é de 32 bits ou a de 64 bits. Tipo, eu tenho essa configuração da JVM para a execução dos meus aplicativos locais de natureza mínima --- > -J-Xms100m -J-Xmx200m -J-XX:PermSize=100m .

What could be the maximum and minimum values for them?

Isso é limitado pela natureza do seu sistema e da JVM.

O limite máximo de heap teórico para a JVM de 32 bits é 4G. Devido a várias restrições adicionais, como swap disponível, uso de espaço de endereço do kernel, fragmentação de memória e sobrecarga de VM, na prática, o limite pode ser muito menor. Na maioria dos sistemas Windows modernos de 32 bits, o tamanho máximo do heap varia de 1,4 G a 1,6 G. Nos kernels Solaris de 32 bits, o espaço de endereço é limitado a 2G. Em sistemas operacionais de 64 bits que executam a VM de 32 bits, o tamanho máximo do heap pode ser maior, aproximando-se do 4G em muitos sistemas Solaris.

Se o seu aplicativo exigir um heap muito grande, você deverá usar uma VM de 64 bits em uma versão do sistema operacional que suporte aplicativos de 64 bits.

Verifique este link para saber mais sobre ele

    
por 21.07.2015 / 13:06