Recommended
PDF
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
PPTX
Generative AI in CSharp with Semantic Kernel.pptx
PDF
Large Language Models for Test Case Evolution and Repair
PPTX
PDF
The current state of generative AI
PDF
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
PDF
How to build a generative AI solution From prototyping to production.pdf
PDF
Generative Artificial Intelligence: How generative AI works.pdf
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
PDF
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
PDF
Javaトラブルに備えよう #jjug_ccc #ccc_h2
PDF
PDF
PDF
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
PDF
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
これからSpringを使う開発者が知っておくべきこと
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PPTX
Spring Boot ユーザの方のための Quarkus 入門
PDF
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
What's new in Spring Boot 2.6 ?
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
PPTX
java.lang.OutOfMemoryError #渋谷java
More Related Content
PDF
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
PPTX
Generative AI in CSharp with Semantic Kernel.pptx
PDF
Large Language Models for Test Case Evolution and Repair
PPTX
PDF
The current state of generative AI
PDF
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
PDF
How to build a generative AI solution From prototyping to production.pdf
PDF
Generative Artificial Intelligence: How generative AI works.pdf
What's hot
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
PDF
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
PDF
Javaトラブルに備えよう #jjug_ccc #ccc_h2
PDF
PDF
PDF
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
PDF
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
これからSpringを使う開発者が知っておくべきこと
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PPTX
Spring Boot ユーザの方のための Quarkus 入門
PDF
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
What's new in Spring Boot 2.6 ?
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Similar to Metaspace
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
PPTX
java.lang.OutOfMemoryError #渋谷java
PPTX
第六回渋谷Java Java8のJVM監視を考える
PDF
Java によるクラウドネイティブ の実現に向けて
PPTX
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
PPTX
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
PDF
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
PDF
PDF
Oracle code one 2018 報告会概要
PPT
PPTX
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
PDF
HeapStats: Introduction and Technical Preview
PDF
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
PDF
PDF
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
PDF
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
PPT
PPT
More from Yasumasa Suenaga
PPTX
PPTX
PPTX
PDF
PPTX
PPTX
HeapStatsのデモ (Java The Night)
PPTX
Panamaを先取り!? JVMCIでJITと遊ぶ
PPTX
もしも… Javaでヘテロジニアスコアが使えたら…
PPTX
Recently uploaded
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
Metaspace 1. 2. 3. 自己紹介
末永 恭正(すえなが やすまさ) @YaSuenag
某SIerでJavaやってるサンデープログラマー
OpenJDK Author(jdk9)
IcedTea Committer
HeapStats作ってます
http://icedtea.classpath.org/wiki/HeapStats/jp
5. 6. 7. 8. 11. 12. 13. 14. 15. 17. 18. 19. 20. 22. 23. 実証コード
import java.nio.file.*;
import java.util.jar.*;
public class MetaFlood{
public static void main(String[] args) throws Exception{
Path rtjar_path = FileSystems.getDefault().getPath(
System.getProperty("java.home"), "lib", "rt.jar");
try(JarFile rtjar = new JarFile(rtjar_path.toFile())){
rtjar.stream().filter(e -> !e.isDirectory())
.map(e -> e.getName())
.filter(n -> n.endsWith(".class"))
.map(n -> n.substring(0, n.length() - 6).replace('/', '.'))
.forEach(n -> { System.out.println(n);
try{
ClassLoader.getSystemClassLoader().loadClass(n);
}
catch(ClassNotFoundException ex){}
catch(OutOfMemoryError oome){
System.out.println(oome.toString());
throw oome;
}
});
}
}
}
24. 26. 27. 28. 29. GCログの例
[Full GC (Metadata GC Threshold)
[PSYoungGen: 496K->0K(2560K)]
[ParOldGen: 388K->836K(6656K)] 884K->836K(9216K),
[Metaspace: 7292K->7292K(9216K)], 0.0123187 secs]
[Times: user=0.02 sys=0.00, real=0.01 secs]
[Full GC (Last ditch collection)
[PSYoungGen: 0K->0K(2560K)]
[ParOldGen: 836K->792K(6656K)] 836K->792K(9216K),
[Metaspace: 7292K->7292K(9216K)], 0.0134180 secs]
[Times: user=0.04 sys=0.00, real=0.02 secs]
※見やすく改行しています
Metaspaceが
足りなくて
GCが発生
GCしても
まだ足りないため
最後の悪あがき
30. 32. 33. jstat
-gcなどが使えます(単位は全部KB)
MC:Metaspace Capacity
MU:Metaspace Used
CCSC: Compressed Class Space Capacity
CCSU: Compressed Class Space Used
-gcmetacapacityというオプションもあります
メタスペースサイズとGC回数・時間の取得用
$ /usr/local/jdk1.8.0_05/bin/jstat -gc 7831
… MC MU CCSC CCSU …
… 4864.0 2377.7 512.0 258.0 …
34. jcmd
PerfCounter.printで細かく見れます
sun.gc.metaspace
sun.gc.compressedclassspace
$ /usr/local/jdk1.8.0_05/bin/jcmd 7831 PerfCounter.print
:
sun.gc.compressedclassspace.capacity=524288
sun.gc.compressedclassspace.maxCapacity=1073741824
sun.gc.compressedclassspace.minCapacity=0
sun.gc.compressedclassspace.used=264208
:
sun.gc.metaspace.capacity=4980736
sun.gc.metaspace.maxCapacity=1082130432
sun.gc.metaspace.minCapacity=0
sun.gc.metaspace.used=2434808
:
35. 36. 37. 38. 39. Native Memory Tracking (NMT)
細かい情報を簡単に知りたいときに最適
-XX:NativeMemoryTracking=[summary|detail]
取り方は2種類
-XX:+UnlockDiagnosticVMOptions と
-XX:+PrintNMTStatistics でjava終了時に取得
jcmd <PID> VM.native_memoryで外側から取得
Metaspaceは”Class”の部分です
40. jcmd VM.native_memory
$ /usr/local/jdk1.8.0_05/bin/jcmd 8858 VM.native_memory
8858:
Native Memory Tracking:
Total: reserved=2330153KB, committed=135365KB
:
- Class (reserved=1062006KB, committed=10102KB)
(classes #374)
(malloc=5238KB, #153)
(mmap: reserved=1056768KB, committed=4864KB)
:
インスタンス
クラス数
41. 42. 44. 45. Metaspace関連オプション(-
XX)オプション 意味 デフォルト
UseLargePagesInMetaspace Metaspaceにラージペー
ジを使うか?
(UseLargePages必須)
false
TraceMetadataHumongousAllocation 大きなオブジェクトを
Metaspaceにアロケート
するのをトレースする
false
InitialBootClassLoaderMetaspaceSize ブートクラスローダ用
Metaspaceの初期値
LP64:4MB
それ以外:
2200KB
MetaspaceSize Metaspaceをリサイズさ
せるための閾値
環境依存
MaxMetaspaceSize 最大Metaspaceサイズ unsigned long
最大値
CompressedClassSpaceSize CompressedClassSpace
のサイズ
1GB
46. 47. 49. 50. 51. 52. 53. 54. 55.