Frage

Wie richte ich Javas min und max Heap-Größe durch Umgebungsvariablen?

Ich weiß, dass die Speichergrößen eingestellt werden, wenn Java-Start, aber ich möchte dies durch Umgebungsvariablen auf meinem Server angepasst haben.

War es hilfreich?

Lösung

Sie können es nicht Umgebungsvariablen direkt. Sie müssen den Satz von „Nicht-Standard“ Optionen verwenden, die mit dem Java-Befehl übergeben werden. Run: java -X für weitere Einzelheiten. Die Optionen Sie suchen sind -Xmx und -Xms (das „erste“ Heap-Größe ist, so wahrscheinlich das, was Sie suchen.)

Einige Produkte wie Ant oder Tomcat könnten mit einem Batch-Skript kommen, die für die Umgebungsvariable JAVA_OPTS aussieht, aber es ist nicht Teil des Java-Runtime. Wenn Sie eines dieser Produkte verwenden, können Sie in der Lage sein, um die Variable zu setzen wie:

set JAVA_OPTS="-Xms128m -Xmx256m"  

Sie können auch diesen Ansatz mit Ihrer eigenen Befehlszeile wie:

set JAVA_OPTS="-Xms128m -Xmx256m"  
java ${JAVA_OPTS} MyClass

Andere Tipps

Wenn Sie java Prozess wollen, nicht nur Ameise oder Tomcat, Optionen zu holen wie -Xmx die Umgebungsvariable _JAVA_OPTIONS verwenden.

In bash: export _JAVA_OPTIONS="-Xmx1g"

Eigentlich gibt es eine Möglichkeit, globale Standardeinstellungen für Sun JVM über Umgebungsvariablen zu setzen.

Siehe Wie eine Java-Systemeigenschaft zu setzen, so dass es effektiv ist, wenn ich JVM starten, ohne dass es auf die Befehlszeilenargumente hinzufügen.

Sie können es nicht Umgebungsvariablen. Es wird über „Nicht-Standard“ Optionen getan. Run: java -X für weitere Einzelheiten. Die Optionen Sie suchen sind -Xmx und -Xms (dies ist „initial“ Heap-Größe, so wahrscheinlich das, was Sie suchen.)

Ich denke, die einzige Möglichkeit ist Java in einem Skript zu wickeln, die die Umgebungsvariablen in die Befehlszeile ersetzt

Ein paar Anmerkungen:

  1. Apache Ant weiß nichts über JAVA_OPTS, während Tomcat-Startskripts tun. Für Apache Ant, Verwendung ANT_OPTS die Umgebung für die JVM beeinflussen, die / ant läuft /, aber nicht für die Dinge, die Ameise starten könnte.

  2. Die maximale Speichergröße Sie hängt ganz von der Umgebung einstellen: für die meisten 32-Bit-Systemen kann die maximale Menge an Heap-Speicher Sie, unabhängig von den verfügbaren Speicher anfordern, ist im 2GiB Bereich. Der größte Haufen auf einem 64-Bit-System ist „wirklich groß“. Auch sind Sie praktisch durch physischen Speicher als auch begrenzt, da der Heap von der JVM verwaltet wird und Sie nicht viel Swapping geht auf die Festplatte wollen.

  3. Für Server-Umgebungen, mögen Sie in der Regel -Xms und -Xmx auf den gleichen Wert setzen: dies die Größe des Haufens bei einer bestimmten Größe beheben und die Garbage Collector hat weniger Arbeit zu tun, weil der Haufen wird nie hat die Größe neu.

  4. werden
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top