SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Tools for Metaspace
Takahiro YAMADA
@yamadamn
!
May 18, 2014
-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
MBeans (by JConsole)
MemoryManagerMXBean - MetaspaceManager
MemoryPoolMXBean - Metaspace, Compressed Class Space
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
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
VisualVM - Visual GC
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...
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
[bonus] GC.class_stats
by Java Mission Control
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
Tools for Metaspace
Thank you!

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Elasticsearch勉強会#39 LT 20201217
Elasticsearch勉強会#39 LT 20201217Elasticsearch勉強会#39 LT 20201217
Elasticsearch勉強会#39 LT 20201217
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame Graphs
 
使いこなそうGUC
使いこなそうGUC使いこなそうGUC
使いこなそうGUC
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
 
Apache Hiveの今とこれから
Apache Hiveの今とこれからApache Hiveの今とこれから
Apache Hiveの今とこれから
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
Keystone fernet token
Keystone fernet tokenKeystone fernet token
Keystone fernet token
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 

Destacado

第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
chonaso
 
Java memory presentation
Java memory presentationJava memory presentation
Java memory presentation
Yury Bubnov
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
 

Destacado (20)

Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8
 
Native Memory Tracking
Native Memory TrackingNative Memory Tracking
Native Memory Tracking
 
Metaspace
MetaspaceMetaspace
Metaspace
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
 
ClassLoader Leaks
ClassLoader LeaksClassLoader Leaks
ClassLoader Leaks
 
Different between .nil?, .empty?, .bank?, .present? and .any?
Different between .nil?, .empty?, .bank?, .present? and .any?Different between .nil?, .empty?, .bank?, .present? and .any?
Different between .nil?, .empty?, .bank?, .present? and .any?
 
java memory management & gc
java memory management & gcjava memory management & gc
java memory management & gc
 
Java memory presentation
Java memory presentationJava memory presentation
Java memory presentation
 
Java memory model
Java memory modelJava memory model
Java memory model
 
The Java Memory Model
The Java Memory ModelThe Java Memory Model
The Java Memory Model
 
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
 
The Java memory model made easy
The Java memory model made easyThe Java memory model made easy
The Java memory model made easy
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
 
JVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark applicationJVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark application
 
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始めHadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccConcurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
 
Creation human - Amazing PowerPoint
Creation human - Amazing PowerPointCreation human - Amazing PowerPoint
Creation human - Amazing PowerPoint
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
 

Similar a Tools for Metaspace

Am I reading GC logs Correctly?
Am I reading GC logs Correctly?Am I reading GC logs Correctly?
Am I reading GC logs Correctly?
Tier1 App
 
JVM and Garbage Collection Tuning
JVM and Garbage Collection TuningJVM and Garbage Collection Tuning
JVM and Garbage Collection Tuning
Kai Koenig
 

Similar a Tools for Metaspace (20)

Am I reading GC logs Correctly?
Am I reading GC logs Correctly?Am I reading GC logs Correctly?
Am I reading GC logs Correctly?
 
Become a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsBecome a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day Devops
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
 
Troubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java ApplicationsTroubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java Applications
 
JVM and Garbage Collection Tuning
JVM and Garbage Collection TuningJVM and Garbage Collection Tuning
JVM and Garbage Collection Tuning
 
Gc crash course (1)
Gc crash course (1)Gc crash course (1)
Gc crash course (1)
 
Performance tuning jvm
Performance tuning jvmPerformance tuning jvm
Performance tuning jvm
 
Jud con presentation_brazil
Jud con presentation_brazilJud con presentation_brazil
Jud con presentation_brazil
 
GC Tuning & Troubleshooting Crash Course
GC Tuning & Troubleshooting Crash CourseGC Tuning & Troubleshooting Crash Course
GC Tuning & Troubleshooting Crash Course
 
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
 
Become a Garbage Collection Hero
Become a Garbage Collection HeroBecome a Garbage Collection Hero
Become a Garbage Collection Hero
 
Javaday 2022 - Remèdes aux oomkill, warm-ups, et lenteurs pour des conteneur...
Javaday 2022 - Remèdes aux oomkill, warm-ups, et lenteurs pour des conteneur...Javaday 2022 - Remèdes aux oomkill, warm-ups, et lenteurs pour des conteneur...
Javaday 2022 - Remèdes aux oomkill, warm-ups, et lenteurs pour des conteneur...
 
Become a Java GC Hero - ConFoo Conference
Become a Java GC Hero - ConFoo ConferenceBecome a Java GC Hero - ConFoo Conference
Become a Java GC Hero - ConFoo Conference
 
JVM memory management & Diagnostics
JVM memory management & DiagnosticsJVM memory management & Diagnostics
JVM memory management & Diagnostics
 
Cassandra Day SV 2014: Basic Operations with Apache Cassandra
Cassandra Day SV 2014: Basic Operations with Apache CassandraCassandra Day SV 2014: Basic Operations with Apache Cassandra
Cassandra Day SV 2014: Basic Operations with Apache Cassandra
 
Taming Java Garbage Collector
Taming Java Garbage CollectorTaming Java Garbage Collector
Taming Java Garbage Collector
 
G1 collector and tuning and Cassandra
G1 collector and tuning and CassandraG1 collector and tuning and Cassandra
G1 collector and tuning and Cassandra
 
ioDrive de benchmarking 2011 1209_zem_distribution
ioDrive de benchmarking 2011 1209_zem_distributionioDrive de benchmarking 2011 1209_zem_distribution
ioDrive de benchmarking 2011 1209_zem_distribution
 
Top-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
 
this-is-garbage-talk-2022.pptx
this-is-garbage-talk-2022.pptxthis-is-garbage-talk-2022.pptx
this-is-garbage-talk-2022.pptx
 

Más de Takahiro YAMADA

Más de Takahiro YAMADA (7)

これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
 
WebSocket of WebLogic
WebSocket of WebLogicWebSocket of WebLogic
WebSocket of WebLogic
 

Último

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Tools for Metaspace

  • 1. Tools for Metaspace Takahiro YAMADA @yamadamn ! May 18, 2014
  • 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. MBeans (by JConsole) MemoryManagerMXBean - MetaspaceManager MemoryPoolMXBean - Metaspace, Compressed Class Space
  • 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. 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
  • 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. 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
  • 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