×
  • Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 

java.lang.OutOfMemoryError #渋谷java

on

  • 169 views

#渋谷java 発表資料です。

#渋谷java 発表資料です。

Statistics

Views

Total Views
169
Views on SlideShare
158
Embed Views
11

Actions

Likes
3
Downloads
1
Comments
0

1 Embed 11

https://twitter.com 12

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
Post Comment
Edit your comment
  • Out swap

java.lang.OutOfMemoryError #渋谷java java.lang.OutOfMemoryError #渋谷java Presentation Transcript

  • 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?