Ubuntu 14 JVM - Es konnte nicht genügend Speicherplatz für das Kartenmarkierungsarray reserviert werden

Ubuntu 14 JVM - Es konnte nicht genügend Speicherplatz für das Kartenmarkierungsarray reserviert werden

Nach dem Upgrade auf Ubuntu 14 habe ich das Problem, dass alle JVMs abstürzen.

Ich installiere Java neu (Oracle- und OpenJDK-Versionen). Ich verbringe einige Zeit damit, die JVM-Heap-Parameter zu optimieren, und jetzt kann ich endlich Java-Apps ausführen.

Jetzt besteht das Problem darin, dass meine Eclipse JVM jedes Mal, wenn ich SQLDeveloper starte, die Meldung „Für das Kartenmarkierungs-Array konnte nicht genügend Speicherplatz reserviert werden“ ausgibt.

Wenn ich das richtig verstehe, hat es etwas mit der Zuweisung der JVM-Speicherblöcke zu tun.

Gibt es eine Regel, die ich befolgen muss, um dies zu verhindern?

Maschineninfo:

Ubuntu 14.04 LTS; 64-Bit; CPU Intel Core2 Duo; 8 GB Speicher

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

Eclipse ausführen/debuggen: java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; -XX:+UseSerialGC;

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

Antwort1

JVM versucht, einen zusammenhängenden Speicherblock zuzuweisen. Da ich auf dem System genügend Speicher habe, muss dieser fragmentiert werden.

Um das Problem zu beheben, habe ich die anfängliche Heap-Größe sehr niedrig eingestellt (der Standardwert von 128 funktionierte nicht) und es der JVM überlassen, damit umzugehen.

Ich habe die JVM-Ausführungsparameter von: geändert.

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

Zu:

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

Aktualisieren:

Ich habe auch das Overcommit_Ratio von 100 (Standard) auf 50 gesenkt.

$ cat /proc/sys/vm/overcommit_ratio

Ich weiß, dass empfohlen wird, es bei 100 zu belassen, aber seit ich die Änderung vorgenommen habe, erhalte ich die JVM-Fehler nicht mehr, wenn ich Chromium/Eclipse/SQLDeveloper parallel ausführe.

verwandte Informationen