Pull to refresh

Диаграммы по управлению памятью в Java процессе

Reading time2 min
Views4.3K

В интернете огромное количество статей и диаграмм на эту тему, однако, по моему мнению, ни одна из них не позволяет сформировать общее представление об использовании памяти в Java процессе. А без общего представления довольно сложно находить решения конкретных проблем с памятью в сложных системах. В результате, я решил выложить свои диаграммы.

Упрощенная диаграмма использования памяти Java процесса:

Упрощенная диаграмма использования памяти Java процесса
Упрощенная диаграмма использования памяти Java процесса

Детализированная диаграмма использования памяти Java процесса некоторыми параметрами:

Детализированная диаграмма использования памяти Java процесса некоторыми параметрами
Детализированная диаграмма использования памяти 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

Данные диаграммы не имеют цели дать полные знания, но они могут стать отправной точкой в изучении темы глубже, восполнении пробелов в знаниях, тюнингу JVM и поиску проблемы в текущей системе.

Tags:
Hubs:
Total votes 13: ↑6 and ↓7-1
Comments8

Articles