Ich verwende einen Java-basierten (Java 17) Container im k8s-Pod. Ich habe versucht, den Wert des zugesicherten Speichers in „jcmd VM.native_memory summary“ und /sys/fs/cgroup/memory/memory.usage_in_bytes zu korrelieren. In meinem Fall war der Wert von „memory.usage_in_bytes“ viel höher als der Wert des zugesicherten Speichers.
cat memory.usage_in_bytes
1597472768
Dies ist die Ausgabe, wenn ich in den Java-Container übergehe und den obigen Befehl ausführe.
[img]
https://i.sstatic .net/Dd7JCN74.png[/img]
Dies ist die Ausgabe der Zusammenfassung des nativen Speichers.
Frage:< /p>
Gesamt zugewiesener Speicher von jcmd ist 857660 KB. Ich versuche zu verstehen, welcher Teil des Java-Prozesses 1.597.472.768 (memory.usage_in_bytes) – 857.660.000 Bytes verbraucht.
Weitere Details:
VM.flags-Ausgabe ist:
-XX:CICompilerCount=2 -XX:CompressedClassSpaceSize=436207616 -XX:ConcGCThreads=1 -XX:+FlightRecorder -XX:G1ConcRefinementThreads=2 -XX:G1EagerReclaimRemSetThreshold=8 -XX:G1HeapRegionSize=1048576 -XX:G1PeriodicGCInterval=10000 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=33554432 -XX:+ManagementServer -XX:MarkStackSize=4194304 -XX:MaxHeapFreeRatio=10 -XX:MaxHeapSize=1073741824 -XX:MaxMetaspaceSize=536870912 -XX:MaxNewSize=643825664 -XX:MaxRAM=2147483648 -XX:MaxRAMPercentage=50,000000 -XX:MetaspaceSize=16777216 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapFreeRatio=5 -XX:MinHeapSize=8388608 -XX:NativeMemoryTracking=summary -XX:NonNMethodCodeHeapSize=5826188 -XX:NonProfiledCodeHeapSize=122916026 -XX:-OmitStackTraceInFastThrow -XX:+PrintNMTStatistics -XX:ProfiledCodeHeapSize=122916026 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:SoftMaxHeapSize=1073741824 -XX:-THPStackMitigation -XX:ThreadStackSize=1024 -XX:+UnlockDiagnosticVMOptions -XX:+UseAdaptiveSizePolicy -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC -XX:+UseStringDeduplication
Ich verwende die Redisson-Clientbibliothek, um mit Redis zu kommunizieren.
https://openjdk.org /jeps/346 – Ich bin darauf gestoßen und habe verstanden, dass dies in Java 12 selbst behoben ist.
Da wir den Redisson-Client verwenden, verstehe ich, dass die Netty-Bibliothek verwendet wird, die direkten Speicher nutzt . Ich konnte in der Befehlsausgabe von jcmd native_memory nicht herausfinden, wie viel direkter Speicher verwendet wird.
Ich verwende einen Java-basierten (Java 17) Container im k8s-Pod. Ich habe versucht, den Wert des zugesicherten Speichers in „jcmd VM.native_memory summary“ und /sys/fs/cgroup/memory/memory.usage_in_bytes zu korrelieren. In meinem Fall war der Wert von „memory.usage_in_bytes“ viel höher als der Wert des zugesicherten Speichers.
cat memory.usage_in_bytes
1597472768
Dies ist die Ausgabe, wenn ich in den Java-Container übergehe und den obigen Befehl ausführe.
[img]https://i.sstatic.net/itfllMj8.png[/img]
[img]https://i.sstatic .net/Dd7JCN74.png[/img]
Dies ist die Ausgabe der Zusammenfassung des nativen Speichers.
[b]Frage:[/b]< /p>
Gesamt zugewiesener Speicher von jcmd ist 857660 KB. Ich versuche zu verstehen, welcher Teil des Java-Prozesses 1.597.472.768 (memory.usage_in_bytes) – 857.660.000 Bytes verbraucht.
[b]Weitere Details:[/b]
VM.flags-Ausgabe ist:
-XX:CICompilerCount=2 -XX:CompressedClassSpaceSize=436207616 -XX:ConcGCThreads=1 -XX:+FlightRecorder -XX:G1ConcRefinementThreads=2 -XX:G1EagerReclaimRemSetThreshold=8 -XX:G1HeapRegionSize=1048576 -XX:G1PeriodicGCInterval=10000 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=33554432 -XX:+ManagementServer -XX:MarkStackSize=4194304 -XX:MaxHeapFreeRatio=10 -XX:MaxHeapSize=1073741824 -XX:MaxMetaspaceSize=536870912 -XX:MaxNewSize=643825664 -XX:MaxRAM=2147483648 -XX:MaxRAMPercentage=50,000000 -XX:MetaspaceSize=16777216 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapFreeRatio=5 -XX:MinHeapSize=8388608 -XX:NativeMemoryTracking=summary -XX:NonNMethodCodeHeapSize=5826188 -XX:NonProfiledCodeHeapSize=122916026 -XX:-OmitStackTraceInFastThrow -XX:+PrintNMTStatistics -XX:ProfiledCodeHeapSize=122916026 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:SoftMaxHeapSize=1073741824 -XX:-THPStackMitigation -XX:ThreadStackSize=1024 -XX:+UnlockDiagnosticVMOptions -XX:+UseAdaptiveSizePolicy -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC -XX:+UseStringDeduplication
Ich verwende die Redisson-Clientbibliothek, um mit Redis zu kommunizieren.
https://openjdk.org /jeps/346 – Ich bin darauf gestoßen und habe verstanden, dass dies in Java 12 selbst behoben ist.
Da wir den Redisson-Client verwenden, verstehe ich, dass die Netty-Bibliothek verwendet wird, die direkten Speicher nutzt . Ich konnte in der Befehlsausgabe von jcmd native_memory nicht herausfinden, wie viel direkter Speicher verwendet wird.