it-swarm.com.de

Wie stelle ich die minimale und maximale Heap-Größe von Java über Umgebungsvariablen ein?

Wie stelle ich die minimale und maximale Heap-Größe von Java über Umgebungsvariablen ein?

Ich weiß, dass die Größe des Heapspeichers beim Starten von Java festgelegt werden kann, möchte dies jedoch über Umgebungsvariablen auf meinem Server anpassen.

66
Jeff Thompson

Sie können dies nicht direkt mit Umgebungsvariablen tun. Sie müssen die "Nicht-Standard" -Optionen verwenden, die an den Java= Befehl übergeben werden. Führen Sie aus: Java -X für Details. Die Optionen, die Sie ' Es wird nach -Xmx und -Xms gesucht (dies ist die "anfängliche" Größe des Heapspeichers, also wahrscheinlich das, wonach Sie suchen.)

Einige Produkte wie Ant oder Tomcat werden möglicherweise mit einem Stapelskript ausgeliefert, das nach der Umgebungsvariablen Java_OPTS sucht, dies ist jedoch kein Bestandteil der Java Laufzeit. Wenn Sie eines dieser Produkte verwenden, ist dies möglicherweise der Fall in der Lage, die Variable wie folgt einzustellen:

set Java_OPTS="-Xms128m -Xmx256m"  

Sie können diesen Ansatz auch mit Ihrer eigenen Befehlszeile ausführen:

set Java_OPTS="-Xms128m -Xmx256m"  
Java ${Java_OPTS} MyClass
72
Todd

Wenn Sie möchten, dass ein beliebiger Java -Prozess, nicht nur Ant oder Tomcat, Optionen wie -Xmx benutze die Umgebungsvariable _Java_OPTIONS.

In der Bash: export _Java_OPTIONS="-Xmx1g"

50
wmli

Tatsächlich gibt es eine Möglichkeit, globale Standardeinstellungen für Suns JVM über Umgebungsvariablen festzulegen.

Siehe So legen Sie eine Java Systemeigenschaft fest, damit sie immer dann wirksam wird, wenn ich JVM starte, ohne sie den Befehlszeilenargumenten hinzuzufügen .

14
Vadzim

Sie können dies nicht mit Umgebungsvariablen tun. Dies geschieht über "Nicht-Standard" -Optionen. Lauf: Java -X für Details. Die Optionen, die Sie suchen, sind -Xmx und -Xms (Dies ist die "anfängliche" Heap-Größe, also wahrscheinlich das, wonach Sie suchen.)

10
a2800276

Ich denke, Sie haben nur die Möglichkeit, Java in ein Skript einzufügen, das die Umgebungsvariablen in die Befehlszeile einfügt

4
frankodwyer

Ein paar Notizen:

  1. Apache ant weiß nichts über Java_OPTS, während Tomcats Startskripte dies tun. Verwenden Sie für Apache ant ANT_OPTS, um die Umgebung für die JVM zu beeinflussen, auf der/ant/ausgeführt wird, nicht jedoch für die Dinge, die ant möglicherweise startet.

  2. Die maximale Größe des Heapspeichers, die Sie festlegen können, hängt vollständig von der Umgebung ab: Bei den meisten 32-Bit-Systemen liegt die maximale Größe des Heapspeichers, die Sie anfordern können, unabhängig vom verfügbaren Speicher, im Bereich von 2 GB. Der größte Heap auf einem 64-Bit-System ist "wirklich groß". Außerdem sind Sie praktisch auch durch den physischen Speicher begrenzt, da der Heap von der JVM verwaltet wird und Sie nicht viel auf die Festplatte auslagern möchten.

  3. In Serverumgebungen möchten Sie in der Regel -Xms und -Xmx auf denselben Wert setzen: Dadurch wird die Größe des Heapspeichers auf eine bestimmte Größe festgelegt, und der Garbage Collector muss weniger arbeiten, da der Heapspeicher nie neu erstellt werden muss. Größe.

3