webentwicklung-frage-antwort-db.com.de

So erhöhen Sie die Heap-Größe für den jBoss-Server

Ich habe ein Szenario zum Hochladen von Dateien in meinem Projekt. Wenn ich versuche, die großen Dateien hochzuladen, wird mir ein OutOfMemory-Fehler angezeigt. Dieser Fehler hängt mit der Größe des Java-Heapspeichers zusammen.

Wie können Sie die Heap-Größe in Java vergrößern und welche Datei muss ich dafür ändern? Ich verwende jboss 5.1 Server zum Ausführen meiner Anwendung.

11
youraj

Sie können es als JVM-Argumente wie üblich festlegen, z. -Xms1024m -Xmx2048m für einen minimalen Haufen von 1 GB und einen maximalen Haufen von 2 GB. JBoss verwendet die Umgebungsvariable Java_OPTS, um weitere JVM-Argumente einzuschließen. Sie können sie in der Datei /bin/run.conf.bat angeben:

set "Java_OPTS=%Java_OPTS% -Xms1024m -Xmx2048m"

Dies ist jedoch eher eine Workaroundals eine echte Lösung. Wenn mehrere Benutzer gleichzeitig große Dateien hochladen, tritt das gleiche Problem früher oder später auf. Sie müssen das Gedächtnis für nichts weiter erhöhen. Sie sollten Ihren Datei-Upload-Parser lieber so konfigurieren, dass die hochgeladene Datei auf einer temporären Festplatte gespeichert wird und nicht vollständig im Speicher. Solange nicht klar ist, welchen Parser Sie verwenden, kann keine passende Antwort gegeben werden. Apache Commons FileUpload wird jedoch häufig unter den Deckblättern verwendet. Sie sollten dann die Dokumentation mit "Schwellenwertgröße" als Schlüsselwort lesen, um das Speicherlimit für hochgeladene Dateien zu konfigurieren. Wenn die Dateigröße den Schwellenwert überschreitet, wird sie auf die Festplatte geschrieben.

25
BalusC

Auf wildfly 8 und höher gehen Sie zu /bin/standalone.conf und setzen dort Ihre Java_OPTS mit allem was Sie brauchen.

4
Camilo

Verwenden Sie die Befehlszeilenoptionen -Xms und -Xmx, wenn Sie Java ausführen:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size

Für weitere Hilfe geben Sie Java -X in die Befehlszeile ein.

4
AlexR

Bearbeiten Sie den folgenden Eintrag in der Datei run.conf. Wenn Sie jedoch mehrere JVMs auf demselben JBoss ausführen, können Sie sie über das Befehlszeilenargument von -Xms2g -Xmx4g ausführen (oder wie auch immer Ihre bevorzugten Start-/Max-Speichereinstellungen sind. 

if [ "x$Java_OPTS" = "x" ]; then
    Java_OPTS="-Xms2g -Xmx4g -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true
3
kmaqsudi

Suchen Sie in Ihrem JBoss-Bin-Ordner nach der Datei run.bat (run.sh unter Unix).

suchen Sie nach der Zeile set Java_OPTS (oder nur Java_OPTS unter Unix) am Ende dieser Zeile und fügen Sie -Xmx512m hinzu. Ändern Sie die Anzahl in die Menge an Speicher, die Sie JBoss zuweisen möchten.

Wenn Sie ein benutzerdefiniertes Skript verwenden, um Ihre Jboss-Instanz zu starten, können Sie auch die Option set Java_OPTS dort hinzufügen.

3
Sean

Ich habe die Konfigurationsänderungen erwähnt, die für die Erhöhung der Heap-Größe in Windows - oder Linux - Umgebungen erforderlich sind. 

Linux:

bin/standalone.conf

Überprüfen Sie die folgende Zeile, 

Java_OPTS

und ändern Sie es entsprechend Ihren Heap-Größenanforderungen

-Xms1303m: initial heap size in megabytes
-Xmx1303m: maximum heap size in megabytes

Java_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Windows:

bin/standalone.conf.bat

Java_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Jetzt restart den Server und es wird funktionieren, ohne dass Heap-Größenfehler angezeigt werden.

Für weitere Informationen können Sie den folgenden Link verwenden.

https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/5/html/getting_started_guide/adjust_memory_settings

1
Dulith De Costa

Was soll ich ändern?

set "Java_OPTS =% Java_OPTS% -Xms1024m -Xmx2048m"

Wo kann man wechseln? (Normalerweise)

bin/standalone.conf (Linux) standalone.conf.bat (Windows)

Was ist, wenn Sie ein benutzerdefiniertes Skript verwenden, das die vorhandenen Einstellungen überschreibt? dann?

setJBosssEnvironment.cmd/.sh (Art des Dateinamens wird dort vorhanden sein)

Weitere Informationen erhalten Sie bereits von einigen unserer Ausschussmitglieder! BalusC .

0
vipul kumawat

Fügen Sie die folgende Option in jboss in bin/standalone.conf.bat hinzu

   set "Java_OPTS=-Xms1G -Xmx1G -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=1024m"
0
Rajeev Ranjan

In meinem Fall für jboss 6.3 musste ich Java_OPTS in der Datei jboss-eap-6.3\bin\standalone.conf.bat ändern und die folgenden Werte -Xmx8g -Xms8g -Xmn3080m einstellen, damit jvm 8 GB Speicherplatz benötigt.

0