java.lang.OutOfMemoryError #渋谷java

21,690 views
22,542 views

Published on

#渋谷java 発表資料です。

Published in: Technology
0 Comments
59 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
21,690
On SlideShare
0
From Embeds
0
Number of Embeds
6,491
Actions
Shares
0
Downloads
72
Comments
0
Likes
59
Embeds 0
No embeds

No notes for slide
  • Out swap
  • java.lang.OutOfMemoryError #渋谷java

    1. 1. Copyright(c)2014 NTT Corp. All Rights Reserved. 0 渋谷Java
    2. 2. Copyright(c)2014 NTT Corp. All Rights Reserved. 1
    3. 3. Copyright(c)2014 NTT Corp. All Rights Reserved. 2
    4. 4. Copyright(c)2014 NTT Corp. All Rights Reserved. 3
    5. 5. Copyright(c)2014 NTT Corp. All Rights Reserved. 4
    6. 6. 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
    7. 7. Copyright(c)2014 NTT Corp. All Rights Reserved. java.lang.OutOfMemoryError: Java heap space 6
    8. 8. Copyright(c)2014 NTT Corp. All Rights Reserved. 7
    9. 9. Copyright(c)2014 NTT Corp. All Rights Reserved. 8 heap non-heap native それ以外
    10. 10. Copyright(c)2014 NTT Corp. All Rights Reserved. 次ページ以降のスライドの読み方 9
    11. 11. 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
    12. 12. Copyright(c)2014 NTT Corp. All Rights Reserved. 11 ※:読み書き権限やファイルマップ有無などの属性が同 じで仮想アドレスが連続する仮想メモリのこと。
    13. 13. Copyright(c)2014 NTT Corp. All Rights Reserved. 12
    14. 14. 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
    15. 15. Copyright(c)2014 NTT Corp. All Rights Reserved. 14
    16. 16. Copyright(c)2014 NTT Corp. All Rights Reserved. 15
    17. 17. 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
    18. 18. Copyright(c)2014 NTT Corp. All Rights Reserved. 17
    19. 19. Copyright(c)2014 NTT Corp. All Rights Reserved. 18
    20. 20. 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
    21. 21. Copyright(c)2014 NTT Corp. All Rights Reserved. 20
    22. 22. Copyright(c)2014 NTT Corp. All Rights Reserved. 21
    23. 23. Copyright(c)2014 NTT Corp. All Rights Reserved. 22
    24. 24. Copyright(c)2014 NTT Corp. All Rights Reserved. 23 定期的に取得して heapstats_log.csv に保存される。 デモの様子
    25. 25. Copyright(c)2014 NTT Corp. All Rights Reserved. 24 FullGC ごとに取得して heapstats_snapshot.dat に 保存される。PermGenも同様に表示可能です。 デモの様子
    26. 26. Copyright(c)2014 NTT Corp. All Rights Reserved. 25 FullGC ごとに取得して heapstats_snapshot.dat に 保存される。GC 時間も合わせて表示されます。 このままだとリークの根本原因は不明のまま。 デモの様子
    27. 27. Copyright(c)2014 NTT Corp. All Rights Reserved. 26 各クラスごとのサイズも時系列で表示される。これを 見ると青色([B)のクラスが明らかにリークしている。 デモの様子
    28. 28. Copyright(c)2014 NTT Corp. All Rights Reserved. 27 クラスの参照関係をサイズ順に確認できる。リーク原 因と思わしき[B(バイト配列) は Airクラス等と参照関係 があるので, これらのクラスで作成されている可能性 がある。サードパーティ製を含めて調査範囲を絞れる デモの様子
    29. 29. Copyright(c)2014 NTT Corp. All Rights Reserved. 28 それ以外
    30. 30. Copyright(c)2014 NTT Corp. All Rights Reserved. 29
    31. 31. Copyright(c)2014 NTT Corp. All Rights Reserved. 30
    32. 32. Copyright(c)2014 NTT Corp. All Rights Reserved. 31 Question?

    ×