Java-Prozessspeicher-Verwaltungsdiagramme

Es gibt viele Artikel und Diagramme zu diesem Thema im Internet, aber meiner Meinung nach erlaubt Ihnen keiner von ihnen, sich einen allgemeinen Überblick über die Speichernutzung im Java-Prozess zu verschaffen. Und ohne ein allgemeines Verständnis ist es schwierig, Lösungen für bestimmte Speicherprobleme in komplexen Systemen zu finden. Aus diesem Grund habe ich beschlossen, meine Diagramme zu veröffentlichen.





Vereinfachtes Diagramm der Java-Speichernutzung eines Prozesses:





Vereinfachtes Diagramm der Java-Speichernutzung eines Prozesses
Vereinfachtes Diagramm der Java-Speichernutzung eines Prozesses

Detailliertes Diagramm der Java-Speichernutzung eines Prozesses durch einige Parameter:





Detailliertes Diagramm der Java-Speichernutzung eines Prozesses durch einige Parameter
Java
JVM Copy Paste

-XX:+UnlockDiagnosticVMOptions 

-XX:+PrintFlagsFinal 

-XX:+PrintGCDetails

-Xlog:gc+heap

-XX:+HeapDumpOnOutOfMemoryError





-XX:+UseSerialGC

-XX:+UseParallelGC

-XX:+UseConcMarkSweepGC

-XX:+UseParNewGC 

-XX:+UseG1GC

-XX:+UseShenandoahGC

-XX:+UseZGC

-XX:+UseEpsilonGC 





-XX:MinRAMPercentage

-XX:MaxRAMPercentage-Xms

-Xmx

-XX:-AdaptiveSizePolicy





-XX:MetaspaceSize

-XX:MaxMetaspaceSize

-XX:MinMetaspaceFreeRatio

-XX:MaxMetaspaceFreeRatio





-n jvmJavaOSStackSize

-Xss

-XX:VmThreadStackSize

-XX:CompilerThreadStackSize





-XX:+PrintGCDetails 

-XX:+TraceClassUnloading 

-XX:+TraceClassLoading

-XX:CompressedClassSpaceSize

-XX:-UseCompressedClassPointers





-XX:+PrintStringTableStatistics

-XX:StringTableSize

-XX:+UseStringDeduplication





-XX:+PrintCodeCache

-XX:InitialCodeCacheSize

-XX:ReservedCodeCacheSize 

-XX:CodeCacheExpansionSize 





-n jvmNativeStackSize 





-XX:MaxDirectMemorySize





-XX:NativeMemoryTracking=off | summary | detail  

-XX:+PrintNMTStatistics 

-XX:-AutoShutdownNMT





-XX:+PrintCompilation





-XX:+UnlockDiagnosticVMOptions 

-XX:+LogCompilation

-XX:+PrintFlagsFinal





-XX:CICompilerCount

-XX:CompileThresholdn

-XX:-TieredCompilation





-Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.authenticate=false 

-Dcom.sun.management.jmxremote.ssl=false 

-Dcom.sun.management.jmxremote.port=9099 

-Dcom.sun.management.jmxremote.rmi.port=9099 

-Dcom.sun.management.jmxremote.local.only=false 

-Djava.rmi.server.hostname=0.0.0.0 

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000





JProfiler

VisualVM

JConsole

Java Flight Recorder

async-profiler

JDK Mission Control

jstack

jmap





Diese Diagramme sollen kein vollständiges Wissen vermitteln, können jedoch ein Ausgangspunkt sein, um das Thema eingehender zu untersuchen, Wissenslücken zu schließen, die JVM zu optimieren und das Problem im aktuellen System zu finden.








All Articles