![Ubuntu 14 JVM: no se pudo reservar suficiente espacio para la matriz de marcado de tarjetas](https://rvso.com/image/1083717/Ubuntu%2014%20JVM%3A%20no%20se%20pudo%20reservar%20suficiente%20espacio%20para%20la%20matriz%20de%20marcado%20de%20tarjetas.png)
Después de actualizar a Ubuntu 14, tengo el problema de que todas las JVM fallan.
Reinstalo Java (versiones Oracle y OpenJDK). Dedico algún tiempo a ajustar los parámetros del montón de JVM y ahora, finalmente, puedo ejecutar aplicaciones Java.
Ahora el problema es que cada vez que inicio SQLDeveloper, mi JVM de Eclipse me indica: "No se pudo reservar suficiente espacio para la matriz de marcado de tarjetas".
Si entiendo correctamente, tiene algo que ver con la asignación de fragmentos de memoria de JVM.
¿Hay alguna regla que debo seguir para evitar que esto suceda?
Información de la máquina:
Ubuntu 14.04 LTS; 64 bits; Procesador Intel Core2 Duo; memoria de 8GB
Eclipse: java-7-oracle; -d64; -XX:MaxPermSize=256M; -Xms512m -Xmx512m;
Ejecución/depuración de Eclipse: java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; -XX:+UsarSerialGC;
Desarrollador SQL: java-7-oracle; -XX:MaxPermSize=256M;
Respuesta1
JVM está intentando asignar un bloque de memoria contiguo. Como tengo suficiente memoria en el sistema, debo fragmentarla.
Para resolver el problema, configuré el tamaño del montón inicial muy bajo (el valor predeterminado 128 no funcionó) y permití que JVM se ocupara de ello.
Cambié los parámetros de ejecución de JVM de:
java-6-openjdk-amd64; -Xms1024m; -Xmx1024m;
A:
java-6-openjdk-amd64; -Xms64m; -Xmx1024m;
Actualizar:
También bajé el overcommit_ratio de 100 (predeterminado) a 50.
$ cat /proc/sys/vm/overcommit_ratio
Sé que se recomienda mantenerlo en 100, pero desde que hice el cambio, no obtengo los errores de jvm cuando ejecuto Chromium/Eclipse/SQLDeveloper en paralelo.