Beziehung zwischen Speicherhost und Speicherargumenten xms und xmx aus Java

8

Ich habe den folgenden Host mit den Speicherdetails:

%Vor%

Ich habe eine Java-App läuft mit den Parametern -Xms200m -Xmx200m , könnte jemand bitte erklären, warum die VCZ ist 3800076 und der RSS ist 241304 (das ist mehr der Java-Parameter)

aus dem Befehl ps -aux :

%Vor%     
Weslor 26.04.2016, 18:06
quelle

1 Antwort

14

Der vom Java-Prozess verwendete Speicher (wie vom Betriebssystem gesehen) ist nicht nur auf Java Heap beschränkt. Es gibt viel mehr Speicherbereiche, die ebenfalls gezählt werden sollten:

  • Metaspace (wo sich Klassenmetadaten befinden);
  • Code Cache (Speicher für JIT-kompilierte Methoden und der gesamte generierte Code);
  • Direkte ByteBuffer;
  • Speicherabgebildete Dateien, einschließlich von JVM gemappter Dateien, z.B. alle JAR-Dateien im Klassenpfad;
  • Thread-Stacks;
  • JVM-Code selbst und alle dynamischen Bibliotheken, die von Java Runtime geladen wurden;
  • Andere interne JVM-Strukturen.

Verwenden Sie NativeMemoryTracking JDK-Funktion, um eine detaillierte Aufschlüsselung des Speichers zu erhalten Bereiche, die von JVM verwendet werden:

%Vor%     
apangin 28.04.2016, 23:42
quelle