Javaトラブルランキング (私の感覚調べ)第1位OutOfMemoryError の発生 (Heap、Perm、”unable to create new na6ve Thread”)第2位スローダウン / タイムアウト (SQL遅延、無限ループ、JTAタイムアウト など) 第3位OSの設定漏れ (“Too many open files” など) 【JJUG CCC 2014 Spring H-‐2】
スレッドダンプ出力例"default task-‐10" prio=5 6d=0x00007fef5bb8d000 nid=0xb307 wai6ng on condi6on [0x000000011090a000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Na6ve Method) -‐ parking to wait for <0x00000007fea15470> at java.u6l.concurrent.locks.LockSupport.parkNanos … 〜 省略 〜 at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnec6on… at slowweb.SlowServlet.processRequest(SlowServlet.java:44) at slowweb.SlowServlet.doGet(SlowServlet.java:78) at javax.servlet.hjp.HjpServlet.service(HjpServlet.java:687) アプリケーション のスタックWildFly内部 のスタック 【JJUG CCC 2014 Spring H-‐2】
47.
スレッドダンプ出力例"default task-‐10" prio=5 6d=0x00007fef5bb8d000 nid=0xb307 wai6ng on condi6on [0x000000011090a000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Na6ve Method) -‐ parking to wait for <0x00000007fea15470> at java.u6l.concurrent.locks.LockSupport.parkNanos … 〜 省略 〜 at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnec6on… at slowweb.SlowServlet.processRequest(SlowServlet.java:44) at slowweb.SlowServlet.doGet(SlowServlet.java:78) at javax.servlet.hjp.HjpServlet.service(HjpServlet.java:687) アプリケーション のスタックWildFly内部 のスタック データソースプール枯渇時の接続取得待ちスレッドの例【JJUG CCC 2014 Spring H-‐2】
48.
可視化ツールその1 『侍』【JJUG CCC 2014 Spring H-‐2】hjp://samuraism.jp/samurai/ja/index.html からダウンロードスレッドの状態を時系列に表示するのに便利 スレッドの増加傾向や、ブロックされ具合が一目でわかる
49.
可視化ツールその2 『ThreadLogic』【JJUG CCC 2014 Spring H-‐2】hjps://java.net/projects/threadlogic からダウンロード怪しいスレッド(確認すべきスレッド)をマーキングしてくれる 特にWebLogicServer/JRockit向けが精度が高い