Limitar o uso de memória do aplicativo Java 8 (SceneBuilder)

0

Estou tendo problemas com (o que parece ser) vazamentos de memória no JavaFX Scene Builder. Eu arquivei um relatório de bug, mas enquanto isso, meu sistema às vezes fica insuportavelmente lento, já que o Scene Builder usa 10 GB ou mais.

Como uma correção temporária, quero limitar a quantidade de memória que ele pode usar. Eu tentei definir o seguinte em SceneBuilder.cfg em JVMOptions:

-XX:InitialHeapSize=256m
-XX:MaxHeapSize=256m
-XX:MaxMetaspaceSize=256m

jps confirma que os argumentos são passados para o processo:

3052  -Djava.library.path=/opt/SceneBuilder/app:/opt/SceneBuilder -Djava.launcher.path=/opt/SceneBuilder -Dapp.preferences.id=com/oracle/javafx/scenebuilder/app -XX:InitialHeapSize=256m -XX:MaxHeapSize=256m -XX:MaxMetaspaceSize=256m

No entanto, o processo ainda sobe no uso de memória, ultrapassando 256 MB, ultrapassando rapidamente 6 GB ou mais.

Então, existe uma maneira de realmente limitar a quantidade de memória usada por um processo Java?

Editar: tentei usar ulimit :

ulimit -d 1024000 -v 1024000 -m 1024000

mas estou recebendo um erro ao tentar iniciar:

Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes

que sugere que o Java realmente ignora o parâmetro MetaspaceSize. Qualquer outra maneira de limitar a memória no Java 8?

    
por Itai 29.06.2016 / 16:55

1 resposta

0

Supondo que você esteja no sistema operacional baseado em Unix.

  1. Você pode executar o programa como usuário diferente e impor limites definidos em /etc/security/limits.conf nesta conta. Isso também deve permitir que você reserve mais recursos para sua conta de usuário normal.

  2. Você pode testar o processo com ferramentas como tempo limite .

Mas como o ulimit não ajuda, ele provavelmente acabará com o processo travando (sem poder alocar memória) ou sendo morto pelo sistema.

Também faça o check-out do link , já que é uma questão semelhante.

Edit: Quanto ao limite do metaspace sendo ignorado. A resposta está aqui link

    
por 29.06.2016 / 17:25

Tags