Pergunta

Estou trabalhando em um servidor Windows 2003 (64 bits) com 8 GB de RAM. Como posso aumentar o máximo da memória da heap? Estou usando o -Xmx1500m Bandeira para aumentar o tamanho da pilha para 1500 MB. Posso aumentar a memória da heap para 75% da memória física (6 GB de heap)?

Foi útil?

Solução

Você pode aumentar para 4 GB em um sistema de 32 bits. Se você estiver em um sistema de 64 bits, pode subir mais. Não há necessidade de se preocupar se você escolheu incorretamente, se você pedir 5G em um sistema de 32 bits, Java reclamará de um valor inválido e desistirá.

Como outros postaram, use as bandeiras da linha CMD - por exemplo,

java -Xmx6g myprogram

Você pode obter uma lista completa (ou uma lista quase completa, de qualquer maneira) digitando Java -x.

Outras dicas

É possível aumentar o tamanho da pilha alocada pela JVM usando as opções da linha de comando aqui, temos 3 opções

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms16m -Xmx64m ClassName

Na linha acima, podemos definir pilhagem mínima para 16 MB e heap máximo de 64 MB

Em uma JVM de 32 bits, o maior tamanho de pilha que você pode teoricamente definido é de 4 GB. Para usar um tamanho de pilha maior, você precisa usar uma JVM de 64 bits. Experimente o seguinte:

Java -xmx6144m -d64

O sinalizador -d64 é importante, pois isso diz à JVM para executar no modo de 64 bits.

É possível aumentar o tamanho da pilha alocada pela JVM no eclipse diretamente no eclipse ide goto

Run ----> Executar configurações ----> argumentos

Digite -xmx1g (é usado para definir o tamanho máximo como xmx256m ou xmx1g ...... m-> mb g ---> gb)

java -d64 -xms512m -xmx4g helloworld

onde, -d64: permitirá JVM -xms512m de 64 bits: definirá o tamanho inicial da pilha como 512 mb -xmx4g: definirá o tamanho máximo da pilha como 4 GB (aqui o nome do arquivo java é: helloworld.java)

Posso aumentar a memória da heap para 75% da memória física (heap de 6 GB).

Sim você pode. De fato, você pode aumentar para mais do que a quantidade de memória física, se quiser.

Se é uma boa ideia fazer isso depende de quanto mais está sendo executado no seu sistema. Em particular, se o "conjunto de trabalho" dos aplicativos e serviços que atualmente estão em execução exceder significativamente a memória física disponível, seu sistema poderá "thrash", gastando muito tempo movendo as páginas de memória virtual de e para o disco. O efeito líquido é que o sistema fica terrivelmente lento.

Você pode aumentar o tamanho da pilha passando os parâmetros da JVM -Xms e -Xmx como abaixo:

Para arquivos JAR:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Para arquivos Java:

 java -Xms4096M -Xmx6144M ClassName

Os parâmetros acima aumentam o InitialHeapSize (-xms) a 4 GB (4096 MB) e MaxHeapSize (-xmx) a 6 GB (6144 MB).

Mas o Geração jovem O tamanho da pilha permanecerá o mesmo e o HEAPSIZE adicional será adicionado ao Antiga geração Tamanho da pilha. Para equalize o tamanho do Young Gen Heap e o Old Gen Heap, usar -Xx: newRatio = 1 -xx: -UseadaptiveSizepolicy params.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-Xx: newratio = antigo tamanho de heap: jovem gen soapsize (Você pode jogar com essa proporção para obter a proporção desejada).

Por favor, use o comando abaixo para alterar o tamanho da pilha para 6 GB

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"

Isso funciona apenas com uma versão de 64 bits do Java. Vá para o painel de controle e clique no ícone Java. Na pequena janela do painel de controle Java, clique na barra de menus Java e clique em view botão.

Se você tiver duas plataformas Java, desative a versão anterior do Java, clique em Parâmetros de tempo de execução campo de texto e escreva -Xmx1024m ou menos do tamanho da RAM. Não aumente o tamanho da pilha igual à RAM, caso contrário, seu sistema falhará.

Várias pessoas apontaram as respostas específicas para o tamanho da pilha com as opções de JVM de -Xms e -Xms. Quero ressaltar que esse não é o único tipo de opção de memória para a JVM. Especificamente se você estiver com pilha sobre fluxos, você deseja aumentar o tamanho da pilha, adicionando uma opção adicional como -Xss8m.

Para este problema, as opções de JVM de algo como -Xms2g -Xmx6g -Xss8m seria uma solução.

Estou compartilhando essas informações, pois minhas pesquisas no Google sobre como aumentar a memória da JVM me levaram a essa solução, e as soluções não funcionaram com grandes quantidades de alocação de memória. Depois de descobrir para que servem as configurações específicas, consegui pesquisar no Google como aumentar o tamanho da pilha e encontrei o parâmetro ausente. :) Espero que isso economize tempo com os outros, como me salvaria muito tempo. :)

Sim. Você pode.

Você pode aumentar sua memória de heap para 75% da memória física (6 GB de heap) ou superior.

Como você está usando 64 bits, você pode aumentar o tamanho da pilha na quantidade desejada. Caso você esteja usando 32 bits, ele é limitado a 4 GB.

$ java -Xms512m -Xmx6144m JavaApplication

Define você com o tamanho inicial da pilha para 512 MB e o máximo de 6 GB.

Espero que ajude.. :)

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