More Related Content
More from Yuji Kubota (20)
HeapStats で GlassFish 4 障害解析 #glassfishjp
- 2. 自己紹介
● KUBOTA Yuji (@sugarlife)
– 難聴者
– ボルダリング
– http://cco.hatenablog.jp/
● 某通信インフラ系
– Java (OpenJDK) / トラブルシューター
– IcedTea Community Committer (HeapStats)
– 過去に Java EE 検証も
2
- 3. GlassFish4の監視
● 楽に監視できる仕組みを揃えている。
– CLI / REST / JMX access / Web Console
– 詳しくは 50 Tips in 50 Mins for GlassFish Fans.
● しかし、学習コストはなるべく下げたい
– 監視と解析のそれぞれで学習コストがかかる
– GlassFishとJVMで監視/解析する項目を切り分ける
● GlassFish:セッション状況、アクティブなJSPページ数...
● JVM:GCログ、ヒープダンプ、コアダンプ...
3
- 6. HeapStatsで収集できる情報
6
通常時
Java ヒープ関連
クラスヒストグラム
GC
発生時間
原因
処理時間
世代別のJavaヒープ使用量
Javaランタイム関連
ネイティブメモリ使用率(RSS/VSZ)
ライブスレッド数
モニタ(ロック)競合回数
完全停止(Stop-The-World)時間
CPU使用率
Javaプロセス内部の内訳(usr/sys)
システム全体の使用率
異常時 ( OutOfMemoryError / Deadlock )
障害発生日時
スレッドダンプ
各種バージョン
Java / JVM
Kernel / libc / distribution
Java関連情報
JVM名
クラスパス
JAVA_HOME
起動引数 / 起動フラグ(-XX系)
実行中のJavaプログラム名と引数
実行時間 (障害発生までの間隔)
プロセス情報
ステータス (procfs - status)
ネイティブメモリ (procfs - smaps)
リソース制限 (procfs - limits)
ソケットエンドポイント (netstat)
syslog (/var/log/messages)
stdout/stderr (存在すれば)
GCログ (存在すれば)
異常時はこの情報に加えて右の情報を取得
- 7. Demonstration
7
● GlassFish Open Source Edition 4.0
– go https://glassfish.java.net/download.html
– unzip glassfish*.zip;
mv glassfish4 /path/to/glassfish/
● HeapStats 1.0.0
– go http://icedtea.wildebeest.org/download/heapstats/
– rpm –ivh heapstats_agent-1.0.0-0*rpm
– tar zxvf heapstats-1.0.0.tar.gz; cd heapstats*;
java –jar heapstats.jar
- 8. HeapStats Project
● HeapStats @ IcedTea
– http://icedtea.classpath.org/wiki/HeapStats
● ML
– http://icedtea.classpath.org/mailman/listinfo/heapstats
8
Question?