wake-up-neo.com

Wie stelle ich die maximale Speichernutzung für JVM ein?

Ich möchte den von der JVM maximal verwendeten Speicher begrenzen. Beachten Sie, dass dies nicht nur der Haufen ist. Ich möchte den von diesem Prozess verwendeten Gesamtspeicher begrenzen.

118
erotsppa

benutze die Argumente -Xms<memory>-Xmx<memory>. Verwenden Sie M oder G nach den Zahlen, um Mega- bzw. Gigabyte anzugeben. -Xms gibt das Minimum an und -Xmx das Maximum.

93
Prabhu R

Sie sollten sich keine Sorgen machen müssen, dass der Stapel Speicher verliert (dies ist sehr ungewöhnlich). Das einzige Mal, dass Sie den Stack außer Kontrolle bringen können, ist die unendliche (oder wirklich tiefe) Rekursion.

Dies ist nur der Haufen. Entschuldigung, habe deine Frage anfangs nicht vollständig gelesen.

Sie müssen die JVM mit dem folgenden Befehlszeilenargument ausführen.

-Xmx<ammount of memory>

Beispiel:

-Xmx1024m

Dies ermöglicht eine maximale Speicherkapazität von 1 GB für die JVM.

28
jjnguy

Wenn Sie den Speicher für jvm begrenzen möchten (nicht die Heap-Größe), verwenden Sie ulimit -v

Sehen Sie sich diesen hervorragenden Artikel an, um einen Eindruck von den Unterschieden zwischen JVM- und Heap-Speicher zu bekommen http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at- Dimensionierung-des-Java-Prozesses.html

15
vsingh

Die obige Antwort ist irgendwie korrekt. Sie können nicht ordnungsgemäß steuern, wie viel nativen Speicher ein Java Prozess zuweist. Es hängt davon ab, was Ihre Anwendung tut.

Das heißt, je nach Plattform können Sie möglicherweise einen Mechanismus verwenden, beispielsweise ulimit, um die Größe eines Java oder eines anderen Prozesses zu begrenzen.

Erwarten Sie nur nicht, dass es anmutig versagt, wenn es diese Grenze erreicht. Fehler bei der Zuweisung des nativen Speichers sind viel schwerer zu handhaben als Fehler bei der Zuweisung auf dem Java= Heap). Die Wahrscheinlichkeit, dass die Anwendung abstürzt, ist ziemlich hoch, hängt jedoch davon ab, wie kritisch es für das System ist, die Prozessgröße beizubehalten unten könnte das noch zu dir passen.

10
SmoothieMonster

Der NativeHeap kann um -XX erhöht werden: MaxDirectMemorySize = 256M (Standard ist 128)

Ich habe es nie benutzt. Vielleicht finden Sie es nützlich.

0
AfisBoy