Ubuntu 14 JVM - Não foi possível reservar espaço suficiente para a matriz de marcação de cartão

-1

Após a atualização para o Ubuntu 14, eu tenho problema com todas as JVMs falhando.

Eu reinstalo o Java (versões oracle e openjdk). Eu gasto algum tempo ajustando os parâmetros de heap da JVM, e agora, finalmente, posso executar aplicativos Java.

Agora, o problema é que toda vez que eu inicio o SQLDeveloper, minha Eclipse JVM me diz: "Não foi possível reservar espaço suficiente para o array de marcação de cartão".

Se eu entendi corretamente, é algo a ver com a alocação de blocos de memória da JVM.

Existe alguma regra que devo seguir para evitar que isso aconteça?

Informações da máquina:

Ubuntu 14.04 LTS; 64-bit; CPU Intel Core2 Duo; 8GB memory

Eclipse: java-7-oracle; -d64; -XX:MaxPermSize=256M; -Xms512m -Xmx512m;

Eclipse Run/Debug: java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; -XX:+UseSerialGC;

SQLDeveloper: java-7-oracle; -XX:MaxPermSize=256M;

    
por Jama Djafarov 23.09.2014 / 22:21

1 resposta

0

A JVM está tentando alocar um bloco contíguo de memória. Como tenho memória suficiente no sistema, ele deve estar fragmentado.

Para resolver o problema, configurei o tamanho de heap inicial muito baixo (o padrão 128 não funcionou) e permiti que a JVM lidasse com ele.

Alterei os parâmetros de execução da JVM de:

java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; 

Para:

java-6-openjdk-amd64; -Xms64m; -Xmx1024m; 

Atualização:

Eu também reduzi o overcommit_ratio de 100 (padrão) para 50.

$ cat /proc/sys/vm/overcommit_ratio

Eu sei que é recomendado mantê-lo 100, mas desde que eu fiz a mudança, eu não recebo os erros jvm, quando eu corro Chromium / Eclipse / SQLDeveloper em paralelo.

    
por Jama Djafarov 23.10.2014 / 16:09