SlideShare a Scribd company logo
Copyright(c)2014 NTT Corp. All Rights Reserved. 0
渋谷Java
Copyright(c)2014 NTT Corp. All Rights Reserved. 1
Copyright(c)2014 NTT Corp. All Rights Reserved. 2
Copyright(c)2014 NTT Corp. All Rights Reserved. 3
Copyright(c)2014 NTT Corp. All Rights Reserved. 4
Copyright(c)2014 NTT Corp. All Rights Reserved.
Metaspace
Java heapPermanentnative
Thread
Stack
-Xmx-XX:MaxPermSize
OS
-XX:MaxMetaspaceSize
-Xss*threads
Compressed Class
Space
-XX:CompressedClassSpaceSize
JDK7以前
※注:この図は解りやすくするために一部嘘をついています。
例:Metaspaceは不連続。Permanent は一部 heap にも移動した。
ThreadStack は 1スレッド辺り Xss + guard page サイズ, 等。
5
OS管理 JVM管理 JVM,JNIコード
データセグメント等
JDK8
Copyright(c)2014 NTT Corp. All Rights Reserved.
java.lang.OutOfMemoryError: Java heap space
6
Copyright(c)2014 NTT Corp. All Rights Reserved. 7
Copyright(c)2014 NTT Corp. All Rights Reserved. 8
heap
non-heap
native
それ以外
Copyright(c)2014 NTT Corp. All Rights Reserved.
次ページ以降のスライドの読み方
9
Copyright(c)2014 NTT Corp. All Rights Reserved. 10
Native
Metaspace
Java heapPermanentnative
Thread
Stack
-Xmx-XX:MaxPermSize
OS
-Xss*threads
Compressed Class
Space
JDK7以前
JDK8
-XX:MaxMetaspaceSize-XX:CompressedClassSpaceSize
Copyright(c)2014 NTT Corp. All Rights Reserved. 11
※:読み書き権限やファイルマップ有無などの属性が同
じで仮想アドレスが連続する仮想メモリのこと。
Copyright(c)2014 NTT Corp. All Rights Reserved. 12
Copyright(c)2014 NTT Corp. All Rights Reserved. 13
Metaspace
Java heapPermanentnative
Thread
Stack
-Xmx-XX:MaxPermSize
OS
-Xss*threads
Compressed Class
Space
JDK7以前
JDK8
heap + non-heap
-XX:MaxMetaspaceSize-XX:CompressedClassSpaceSize
Copyright(c)2014 NTT Corp. All Rights Reserved. 14
Copyright(c)2014 NTT Corp. All Rights Reserved. 15
Copyright(c)2014 NTT Corp. All Rights Reserved. 16
Metaspace
Java heapPermanentnative
Thread
Stack
-Xmx-XX:MaxPermSize
OS
-Xss*threads
Compressed Class
Space
JDK7以前
JDK8
non-heap
-XX:MaxMetaspaceSize-XX:CompressedClassSpaceSize
Copyright(c)2014 NTT Corp. All Rights Reserved. 17
Copyright(c)2014 NTT Corp. All Rights Reserved. 18
Copyright(c)2014 NTT Corp. All Rights Reserved. 19
Metaspace
Java heapPermanentnative
Thread
Stack
-Xmx-XX:MaxPermSize
OS
-Xss*threads
Compressed Class
Space
JDK7以前
JDK8
heap
-XX:MaxMetaspaceSize-XX:CompressedClassSpaceSize
Copyright(c)2014 NTT Corp. All Rights Reserved. 20
Copyright(c)2014 NTT Corp. All Rights Reserved. 21
Copyright(c)2014 NTT Corp. All Rights Reserved. 22
Copyright(c)2014 NTT Corp. All Rights Reserved. 23
定期的に取得して heapstats_log.csv に保存される。
デモの様子
Copyright(c)2014 NTT Corp. All Rights Reserved. 24
FullGC ごとに取得して heapstats_snapshot.dat に
保存される。PermGenも同様に表示可能です。
デモの様子
Copyright(c)2014 NTT Corp. All Rights Reserved. 25
FullGC ごとに取得して heapstats_snapshot.dat に
保存される。GC 時間も合わせて表示されます。
このままだとリークの根本原因は不明のまま。
デモの様子
Copyright(c)2014 NTT Corp. All Rights Reserved. 26
各クラスごとのサイズも時系列で表示される。これを
見ると青色([B)のクラスが明らかにリークしている。
デモの様子
Copyright(c)2014 NTT Corp. All Rights Reserved. 27
クラスの参照関係をサイズ順に確認できる。リーク原
因と思わしき[B(バイト配列) は Airクラス等と参照関係
があるので, これらのクラスで作成されている可能性
がある。サードパーティ製を含めて調査範囲を絞れる
デモの様子
Copyright(c)2014 NTT Corp. All Rights Reserved. 28
それ以外
Copyright(c)2014 NTT Corp. All Rights Reserved. 29
Copyright(c)2014 NTT Corp. All Rights Reserved. 30
Copyright(c)2014 NTT Corp. All Rights Reserved. 31
Question?

More Related Content

What's hot (20)

PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
NTT DATA Technology & Innovation
 
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
 
PPTX
Java 9で進化する診断ツール
Yasumasa Suenaga
 
PPTX
分散システムについて語らせてくれ
Kumazaki Hiroki
 
PDF
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
PPTX
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
 
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PDF
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
PDF
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
 
PDF
使ってみよう!JDK Flight Recorder
Yoshiro Tokumasu
 
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
 
PPTX
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
 
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
 
PDF
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
 
PPTX
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
PPTX
Redisの特徴と活用方法について
Yuji Otani
 
PDF
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
 
Java 9で進化する診断ツール
Yasumasa Suenaga
 
分散システムについて語らせてくれ
Kumazaki Hiroki
 
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
 
使ってみよう!JDK Flight Recorder
Yoshiro Tokumasu
 
Linux女子部 systemd徹底入門
Etsuji Nakai
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
 
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Yuji Otani
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 

Viewers also liked (20)

PDF
楽して JVM を学びたい #jjug
Yuji Kubota
 
PDF
JVM のいろはにほ #javajo
Yuji Kubota
 
PDF
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
 
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
 
PDF
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Monica Beckwith
 
PDF
GCが止まらない
Narihiro Nakamura
 
PPTX
GCについて
cactusman
 
PPTX
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Monica Beckwith
 
PDF
エスイーのしごと
Yoshitaka Kawashima
 
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
 
PPTX
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
 
PDF
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
 
PPTX
良いコードとは
Nobuyuki Matsui
 
PDF
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
 
PPTX
JVM言語を使ってみようの歌
YujiSoftware
 
PDF
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
 
PDF
Graph Algorithms Part 1
Taku Miyakawa
 
PDF
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
 
PPTX
高速なソートアルゴリズムを書こう!!
masakazu matsubara
 
PPTX
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
 
楽して JVM を学びたい #jjug
Yuji Kubota
 
JVM のいろはにほ #javajo
Yuji Kubota
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
 
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Monica Beckwith
 
GCが止まらない
Narihiro Nakamura
 
GCについて
cactusman
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Monica Beckwith
 
エスイーのしごと
Yoshitaka Kawashima
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
 
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
 
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
 
良いコードとは
Nobuyuki Matsui
 
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
 
JVM言語を使ってみようの歌
YujiSoftware
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
 
Graph Algorithms Part 1
Taku Miyakawa
 
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
 
高速なソートアルゴリズムを書こう!!
masakazu matsubara
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
 
Ad

More from Yuji Kubota (20)

PDF
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
PDF
Head toward Java 15 and Java 16
Yuji Kubota
 
PDF
Head toward Java 14 and Java 15 #LINE_DM
Yuji Kubota
 
PDF
Head toward Java 14 and Java 15
Yuji Kubota
 
PDF
オンライン会議と音声認識
Yuji Kubota
 
PDF
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
 
PDF
Catch up Java 12 and Java 13
Yuji Kubota
 
PDF
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 
PDF
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
PDF
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
 
PPTX
Project Jigsaw #kanjava
Yuji Kubota
 
PPTX
Java 9 and Future #jjug
Yuji Kubota
 
PPTX
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Yuji Kubota
 
PDF
Prepare for Java 9 #jjug
Yuji Kubota
 
PDF
jcmd #javacasual
Yuji Kubota
 
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
PDF
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
 
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
PDF
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
 
PDF
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Yuji Kubota
 
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
Head toward Java 15 and Java 16
Yuji Kubota
 
Head toward Java 14 and Java 15 #LINE_DM
Yuji Kubota
 
Head toward Java 14 and Java 15
Yuji Kubota
 
オンライン会議と音声認識
Yuji Kubota
 
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
 
Catch up Java 12 and Java 13
Yuji Kubota
 
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
 
Project Jigsaw #kanjava
Yuji Kubota
 
Java 9 and Future #jjug
Yuji Kubota
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Yuji Kubota
 
Prepare for Java 9 #jjug
Yuji Kubota
 
jcmd #javacasual
Yuji Kubota
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Yuji Kubota
 
Ad

Recently uploaded (10)

PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 

java.lang.OutOfMemoryError #渋谷java

Editor's Notes