Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HeapStats @ Seasar Conference 2015 LT

3,086 views

Published on

Seasar Conference LT 資料です

Published in: Technology
  • Be the first to comment

HeapStats @ Seasar Conference 2015 LT

  1. 1. HeapStats: JVM レイヤ からみつめる OSS 障害 解析支援ツール KUBOTA Yuji @sugarlife Copyright©2015 NTT corp. All Rights Reserved. Seasar Conference 2015 LT
  2. 2. Copyright©2015 NTT corp. All Rights Reserved. 2 目的
  3. 3. OpenJDK (Java) の トラブル解決チーム ↓ ノウハウを OSS 化 Copyright©2015 NTT corp. All Rights Reserved. 3 どんな OSS ?
  4. 4. Copyright©2015 NTT corp. All Rights Reserved. 4
  5. 5. 襲いかかるトラブル Copyright©2015 NTT corp. All Rights Reserved. 5 Caused by: java.sql.SQLException: プロトコル違反です。 at xxx.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at xxx.jdbc.driver.Statement.executeForDescribe(Statement.java:804) at xxx.jdbc.driver. Statement.doExecuteWithTimeout(Statement.java:1154) at xxx.jdbc.driver.Statement.executeQuery(Statement.java:1313) at com.xxx.query.QueryDataSet.<init>(QueryDataSet.java:80) at org.xxx.database.util.BaseSQL.executeQuery(BaseSQL.java:930) ... 26 more Exception in thread "TP-Processor9" java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3221) at java.lang.String.<init>(String.java:233) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at java.lang.Thread.run(Thread.java:619)
  6. 6. よくある困ったパターン 6 • ログがない • 手作業ミスで(ログが)消し飛んだ • サービス環境で重い処理(≒ログ 収集・解析) が禁止されている • 個人情報関係で重要ログが来ない Copyright©2015 NTT corp. All Rights Reserved.
  7. 7. いいから 7 • ログがない • 手作業ミスで(ログが)消し飛んだ • サービス環境で重い処理(≒ログ 収集・解析) が禁止されている • 個人情報関係で重要ログが来ない Copyright©2015 NTT corp. All Rights Reserved. ログを取る
  8. 8. 作った Copyright©2015 NTT corp. All Rights Reserved. 8 Server Application Agent Local Machine Analyzer JVM に アタッチ 別環境で 解析
  9. 9. Agent Copyright©2015 NTT corp. All Rights Reserved. Server Application Agent JVM に アタッチ Local Machine Analyzer 別環境で 解析
  10. 10. Agent Copyright©2015 NTT corp. All Rights Reserved. Server Application Agent JVM に アタッチ Local Machine Analyzer 別環境で 解析 アセンブラ/C++製 Agent •  インストール rpm -ivh heapstats*rpm •  実行 java -agentlib:heapstats    <Your Application> •  常時収集+故障時は詳細に •  動作中でもオンオフ可能 •  低オーバーヘッド
  11. 11. 282.68 269.92 0 50 100 150 200 250 300 Without HeapStats With HeapStats (ops/m) SPECjvm2008 Composite Result •  ベンチマークツール: SPECjvm2008 1.01 •  マシン: DELL PowerEdge R810(Xeon X7542、メモリ32GB) •  OS: Red Hat Enterprise Linux Server release 6.3 x86_64 •  Java: java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.x86_64 •  java起動オプション: -Xms4500m -Xmx4500m -XX:+UseG1GC -agentpath:<エージェントライブラリ> オーバヘッド Copyright©2015 NTT corp. All Rights Reserved. 11 ※ 測定環境 4.51%
  12. 12. Analyzer Copyright©2015 NTT corp. All Rights Reserved. 12 Server Application Agent Local Machine Analyzer JVM に アタッチ 別環境で 解析
  13. 13. Analyzer Copyright©2015 NTT corp. All Rights Reserved. 13 Server Application Agent Local Machine Analyzer JVM に アタッチ 別環境で 解析 Swing 製 GUI Viewer •  インストール JARファイルを置くだけ •  実行 java -jar heapstats.jar •  時系列情報を一覧で表示 •  CSV 出力機能もあるよ!
  14. 14. プロセスリソース(OS/JVM) Copyright©2015 NTT corp. All Rights Reserved. 14
  15. 15. GC時間, ヒープ, メタスペース Copyright©2015 NTT corp. All Rights Reserved. 15
  16. 16. クラスヒストグラム Copyright©2015 NTT corp. All Rights Reserved. 16 [B byte[]
  17. 17. オブジェクト参照関係 Copyright©2015 NTT corp. All Rights Reserved. 17 [B byte[] 3rd パーティ 製品なら連絡
  18. 18. 障害発生時の詳細情報 Copyright©2015 NTT corp. All Rights Reserved. 18
  19. 19. Pros / Cons Copyright©2015 NTT corp. All Rights Reserved. 19 Pros •  確実な初期行動がとれる •  メモリ絡みの問題はほぼ撃墜できる •  オーバーヘッドはかなり低い •  次バージョンからはスレッドの時系 列情報も取得できる Cons •  プロファイリング情報は取れない •  Agent は Linux (x86/AMD64)限定
  20. 20. Thank You ! Copyright©2015 NTT corp. All Rights Reserved. 20 http://icedtea.classpath.org/wiki/HeapStats/jp 質問は @sugarlife か #heapstats へ!

×