3 Stimmen

Tomcat-Problem - Konnte nicht genügend Platz reservieren

Ich betreibe einen Server mit 256 MB RAM. Die maximale Heapspeichergröße, die ich für Java zuweisen kann, beträgt 110 MB. Wenn ich diese Parameter zu JAVA_OPTS hinzufüge, kann ich java -version ausführen. Das Problem ist, dass ich Tomcat mit diesen Parametern nicht ausführen kann. Die maximale Heapspeichergröße für Tomcat beträgt 40 MB. Ich weiß nicht, warum ich nicht mehr Speicher zuweisen kann?

Natürlich erhalte ich einen Fehler:

Ein Fehler ist während der Initialisierung der VM aufgetreten
Es konnte nicht genügend Speicherplatz für den Objektheap reserviert werden
Die Java-Virtual Machine konnte nicht erstellt werden.

2voto

Sean Owen Punkte 64909

Setzen Sie CATALINA_OPTS auf -Xmx110m, JAVA_OPTS. Ich nehme an, Sie könnten beide setzen, um sicher zu gehen.

2voto

Vineet Reynolds Punkte 74302

Die Xmx-Flagge kann ignoriert werden, wenn Sie das java-Ausführbare mit der -version-Flagge ausführen. Dies hängt davon ab, wie Sie die Versionsflagge übergeben. Hier sind die Ergebnisse auf meinem Rechner mit 2GB RAM:

Versionsflagge vor Xmx übergeben

C:\Users\Reynolds>java -version -Xmx10240M
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)

was seltsam ist, wenn man bedenkt, dass 10G über dem maximal adressierbaren Limit des Speichers in einem 32-Bit-Umfeld liegt.

Versionsflagge nach Xmx übergeben

C:\Users\Reynolds>java -Xmx10240M -version
Ungültige maximale Heap-Größe: -Xmx10240M
Die angegebene Größe überschreitet die maximal darstellbare Größe.
Java Virtual Machine konnte nicht erstellt werden.

C:\Users\Reynolds>java -Xmx1524M -version
Fehler beim Initialisieren der VM
Es konnte nicht genügend Speicherplatz für den Objektheap reserviert werden
Java Virtual Machine konnte nicht erstellt werden.

was der Realität näher kommt.

Sie möchten möglicherweise überprüfen, wie viel zusammenhängender Speicher in Wirklichkeit für Java verfügbar ist, indem Sie den zweiten Ansatz verwenden, und dann einen optimalen Wert für die maximale Heap-Größe festlegen.

1voto

Paul Whelan Punkte 16284

Die Fehlermeldung legt nahe, dass Sie nicht genügend freien RAM haben. Versuchen Sie, andere Anwendungen zu schließen und sehen Sie, ob Sie einen größeren Speicherplatz zuweisen können. Möglicherweise benötigen Sie mehr RAM, leider.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X