Como faço para definir o min e tamanho da pilha máximo Java através de variáveis ??de ambiente?

StackOverflow https://stackoverflow.com/questions/417152

Pergunta

Como faço para definir min e pilha tamanho máximo de Java através de variáveis ??de ambiente?

Eu sei que os tamanhos de heap pode ser definido quando iniciar java, mas eu gostaria de ter este ajustado através de variáveis ??de ambiente no meu servidor.

Foi útil?

Solução

Você não pode fazê-lo usando variáveis ??de ambiente diretamente. Você precisa usar o conjunto de opções "não padrão" que são passados ??para o comando java. Execute: java -X para mais detalhes. As opções que você está procurando são -Xmx e -Xms (este é tamanho "inicial" pilha, de modo que provavelmente o que você está procurando.)

Alguns produtos, como Ant ou Tomcat pode vir com um script em lotes que procura a variável de ambiente JAVA_OPTS, mas não é parte do tempo de execução Java. Se você estiver usando um desses produtos, você pode ser capaz de definir a variável como:

set JAVA_OPTS="-Xms128m -Xmx256m"  

Você também pode tomar essa abordagem com a sua própria linha de comando como:

set JAVA_OPTS="-Xms128m -Xmx256m"  
java ${JAVA_OPTS} MyClass

Outras dicas

Se você quiser qualquer processo java, não apenas formiga ou Tomcat, para pegar opções como uso -Xmx a variável de ambiente _JAVA_OPTIONS.

Em bash: export _JAVA_OPTIONS="-Xmx1g"

Na verdade, há uma maneira de definir padrões globais para a JVM da Sun através de variáveis ??de ambiente.

Veja Como definir uma propriedade do sistema java para que ele seja eficaz sempre que eu começar a JVM sem adicioná-lo ao comando argumentos da linha de .

Você não pode fazê-lo usando variáveis ??de ambiente. É feito através de opções "não padrão". Execute: java -X para mais detalhes. As opções que você está procurando são -Xmx e -Xms (este é tamanho "inicial" pilha, de modo que provavelmente o que você está procurando.)

Eu acho que sua única opção é para embrulhar java em um script que substitui as variáveis ??de ambiente na linha de comando

Um par de notas:

  1. Apache Ant não sabe nada sobre JAVA_OPTS, enquanto scripts de inicialização do Tomcat fazer. Para o Apache Ant, uso ANT_OPTS para afetar o ambiente para a JVM que executa / ant /, mas não para as coisas que o lançamento poder formiga.

  2. O tamanho máximo de heap pode definir depende inteiramente do ambiente: para a maioria dos sistemas de 32 bits, a quantidade máxima de espaço de pilha pode solicitar, independentemente de memória disponível, está na faixa 2GiB. O maior pilha em um sistema de 64 bits é "muito grande". Além disso, você está praticamente limitado pela memória física, bem como, uma vez que a pilha é gerido pela JVM e você não quer um monte de troca de ir para o disco.

  3. Para ambientes de servidor, normalmente você deseja definir -Xms e -Xmx para o mesmo valor: isso vai resolver o tamanho da pilha em um determinado tamanho e o coletor de lixo tem menos trabalho a fazer porque a pilha vai nunca tem que ser re-sized.

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