
Ich versuche, eine Datei auf einem VPS mit 384 MB RAM auszuführen. Wenn ich die Datei mit diesem Befehl auf dem Terminal ausführe
java -jar server.jar
Der Prozess wird einfach gestartet, aber da ihm nur etwa 180 MB zugewiesen sind, muss ich den gesamten verfügbaren RAM zuweisen, sonst stürzt der Server ab. Ich führe den Befehl free -m aus und erhalte diese Ausgabe:
total used free shared buffers cached
Mem: 384 58 325 6 0 44
-/+ buffers/cache: 14 369
Swap: 96 0 96
Ich habe also viele Befehle mit unterschiedlichen RAM-Mengen wie diesen ausprobiert, aber keiner hat funktioniert, Java konnte die Java Virtual Machine nicht erstellen:
java -Xms32M -Xmx256M -jar minecraft_server.jar
Ich habe versucht, den maximalen RAM, die Hälfte und andere Werte einzugeben, aber es tritt ein Fehler auf. Vorher habe ich dieselbe Datei auf einem 1-GB-VPS ausgeführt und dieser Befehl hat einwandfrei funktioniert:
java -Xmx1024M -Xms1024M -jar bukkit.jar
Meine Java-Version ist:
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK Client VM (build 24.51-b03, mixed mode)
Mein Betriebssystem ist Ubuntu Server 12.04 x86 Ich hoffe, Sie können mir helfen, ich stecke seit zwei Tagen mit dem gleichen Problem fest
EDIT: Fehlermeldungen bei unterschiedlicher RAM-Größe
root@vps-dot-me:~# java -Xms32M -Xmx384M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -server -Xms128M -Xmx256M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -XX:MaxHeapSize=256m -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Antwort1
Möglicherweise ist die Speicherzuweisung zu klein. Versuchen Sie, sie schrittweise zu erhöhen. Wenn dies bei der kleineren Zuweisung nicht gelingt, versuchen Sie es mit der nächstgrößeren Zuweisung.
export _JAVA_OPTIONS="-Xms128m -Xmx128m
export _JAVA_OPTIONS="-Xms256m -Xmx256m
export _JAVA_OPTIONS="-Xms512m -Xmx512m
export _JAVA_OPTIONS="-Xms1024m -Xmx1024m
Führen Sie diesen Befehl aus, nachdem Sie dieselben Einstellungen vorgenommen haben:
java -jar yourJavaApp.jar
(Sie müssen sich im Verzeichnis Ihrer App befinden).
Bitte beachten Sie, dass Sie es „vorübergehend“ versuchen können, indem Sie Folgendes als Option eingeben:
java -Xms128m -Xmx128m -jar yourJavaApp.jar
Es schlägt fehl, weil der JRE nicht genügend Speicher zugewiesen ist. Vielleicht haben Sie zu viele offene Apps, zu wenig Speicher usw.