Ubuntu 14 JVM — Не удалось зарезервировать достаточно места для массива маркировки карт

Ubuntu 14 JVM — Не удалось зарезервировать достаточно места для массива маркировки карт

После обновления до Ubuntu 14 у меня возникла проблема со сбоями всех JVM.

Я переустанавливаю Java (версии Oracle и OpenJDK). Я трачу время на настройку параметров кучи JVM, и теперь, наконец, я могу запускать приложения Java.

Теперь проблема в том, что каждый раз, когда я запускаю SQLDeveloper, моя Eclipse JVM выдает мне сообщение: «Не удалось зарезервировать достаточно места для массива маркировки карт».

Если я правильно понимаю, это как-то связано с распределением участков памяти JVM.

Есть ли правило, которому я должен следовать, чтобы этого не произошло?

Информация о машине:

Ubuntu 14.04 LTS; 64-бит; ЦП Intel Core2 Duo; 8 ГБ памяти

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

Запуск/отладка Eclipse: java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; -XX:+UseSerialGC;

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

решение1

JVM пытается выделить непрерывный блок памяти. Поскольку у меня достаточно памяти в системе, она должна быть фрагментирована.

Чтобы решить эту проблему, я установил начальный размер кучи очень маленьким (значение по умолчанию 128 не сработало) и позволил JVM справиться с этим.

Я изменил параметры выполнения JVM с:

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

К:

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

Обновлять:

Я также снизил overcommit_ratio со 100 (по умолчанию) до 50.

$ cat /proc/sys/vm/overcommit_ratio

Я знаю, что рекомендуется оставить значение 100, но с тех пор, как я внес это изменение, у меня не возникают ошибки jvm при параллельном запуске Chromium/Eclipse/SQLDeveloper.

Связанный контент