Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tools for Metaspace

7,987 views

Published on

About Tools for Metaspace introduced in Java SE 8.

Published in: Technology, Education
  • Be the first to comment

Tools for Metaspace

  1. 1. Tools for Metaspace Takahiro YAMADA @yamadamn ! May 18, 2014
  2. 2. -XX:+PrintGCDetails • Print at Full GC. • Summary at the end of the run. ! 2014-05-17T15:09:24.581-0900: 3.168: [Full GC (Metadata GC Threshold) [PSYoungGen: 1371K->0K(36864K)] [ParOldGen: 10609K->8518K(64000K)] 11980K->8518K(100864K), [Metaspace: 19037K->19037K(1067008K)], 0.0748560 secs] [Times: user=0.22 sys=0.01, real=0.07 secs] ! : ! Heap PSYoungGen total 64512K, used 51555K [0x00000007b5580000, 0x00000007ba680000, 0x00000007c0000000) eden space 55296K, 93% used [0x00000007b5580000,0x00000007b87d8e48,0x00000007b8b80000) from space 9216K, 0% used [0x00000007b9400000,0x00000007b9400000,0x00000007b9d00000) to space 8704K, 0% used [0x00000007b8b80000,0x00000007b8b80000,0x00000007b9400000) ParOldGen total 64000K, used 15253K [0x00000007a0000000, 0x00000007a3e80000, 0x00000007b5580000) object space 64000K, 23% used [0x00000007a0000000,0x00000007a0ee5448,0x00000007a3e80000) Metaspace used 39666K, capacity 44330K, committed 44584K, reserved 1087488K class space used 5119K, capacity 6624K, committed 6696K, reserved 1048576K
  3. 3. MBeans (by JConsole) MemoryManagerMXBean - MetaspaceManager MemoryPoolMXBean - Metaspace, Compressed Class Space
  4. 4. jstat -gc • Garbage-collected heap statistics. $ jstat -gc 1489 1000 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 11776.0 9216.0 0.0 9193.6 52224.0 50389.1 64000.0 18622.9 44288.0 39431.8 6656.0 5092.0 19 0.144 2 0.169 0.313 11776.0 12800.0 8882.0 0.0 60928.0 767.5 64000.0 23397.3 51968.0 46211.0 7680.0 5964.2 20 0.172 2 0.169 0.340 ! MC: Metaspace capacity (KB). CCSC: Compressed Class Space capacity (KB) MU: Metaspace utilization (KB). CCSU: Compressed Class Space used (KB) ! Other options: -gcold, -gcoldcapacity, -gcmetacapacity, -gcutil
  5. 5. VM.native_memory $ jcmd 3739 VM.native_memory 3739: Native Memory Tracking: Total: reserved=1998084KB, committed=368784KB - Java Heap (reserved=524288KB, committed=170496KB) (mmap: reserved=524288KB, committed=170496KB) - Class (reserved=1105346KB, committed=63938KB) (classes #9624) (malloc=7618KB, #51808) (mmap: reserved=1097728KB, committed=56320KB) ! : ! There is little gap with jstat - MC: Metaspace capacity . But I don t know... ! • Please see the details in my slide Native Memory Tracking http://www.slideshare.net/TakahiroYamada3/native-memory-tracking
  6. 6. VisualVM - Visual GC
  7. 7. jmap -clstats • Print class loader statistics. ! $ jmap -clstats 812 Attaching to process ID 812, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.5-b02 finding class loader instances ..done. computing per loader stat ..done. please wait.. computing liveness..............................................liveness analysis may be inaccurate ... class_loader classes bytes parent_loader alive? type ! <bootstrap> 1995 3328826 null live <internal> 0x00000007a048d848 0 0 0x00000007a0046080 live org/jboss/modules/ModuleClassLoader@0x00000007c0061828 0x00000007a050d450 14 40112 0x00000007a0046080 live org/jboss/modules/ModuleClassLoader@0x00000007c0061828 0x00000007a0197618 103 184762 0x00000007a0046080 live org/jboss/modules/ModuleClassLoader@0x00000007c0061828 ! : ! 0x00000007a03da1c0 2 1793 0x00000007a0046080 live org/jboss/modules/ModuleClassLoader@0x00000007c0061828 0x00000007b5ceee30 1 1471 null dead sun/reflect/DelegatingClassLoader@0x00000007c0009870 ! total = 233 14805 28150534 N/A alive=223, dead=10 N/A ! It s too slow...
  8. 8. GC.class_stats • Provide statistics about Java class meta data. • Requires -XX:+UnlockDiagnosticVMOptions. ! $ jcmd 1776 GC.class_stats 1776: Index Super InstBytes KlassBytes annotations CpAll MethodCount Bytecodes MethodAll ROAll RWAll Total ClassName 1 -1 6755096 480 0 0 0 0 0 24 576 600 [B 2 -1 4966392 480 0 0 0 0 0 24 576 600 [C 3 52 2308640 560 0 1296 7 149 1400 880 2680 3560 java.util.HashMap$Node ! : ! 25921608 5081848 39904 15241688 74884 3068987 17402760 12622240 27566192 40188432 Total 64.5% 12.6% 0.1% 37.9% - 7.6% 43.3% 31.4% 68.6% 100.0% Index Super InstBytes KlassBytes annotations CpAll MethodCount Bytecodes MethodAll ROAll RWAll Total ClassName ! Options: -all, -csv, -help
  9. 9. [bonus] GC.class_stats by Java Mission Control
  10. 10. Summary • General • -XX:+PrintGCDetails • MBeans • MemoryManagerMXBean - MetaspaceManager • MemoryPoolMXBean - Metaspace, Compressed Class Space • jstat -gc, Visual GC • (VM.native_memory) ! • By class loader • jmap -clstats • By class • GC.class_stats
  11. 11. Tools for Metaspace Thank you!

×