狠狠撸
Submit Search
jcmd をさわってみよう
?
Download as PPTX, PDF
?
6 likes
?
8,432 views
Tsunenaga Hanyuda
日本Javaユーザーグループ JJUG ナイトセミナー 2 月 27 日(水) http://www.java-users.jp/?p=309
Read less
Read more
1 of 21
Download now
Downloaded 55 times
More Related Content
jcmd をさわってみよう
1.
jcmd をさわってみよう
羽生田 恒永 1
2.
ここで示されている見解は私個人の ものであり、所属会社の見解を反映 したものではありません
2
3.
目次
? 自己紹介 ? jcmdの紹介 ? デモ ? まとめ 3
4.
自己紹介 ? 羽生田 恒永(はにゅうだ?つねなが) ?
所属:日本オラクル株式会社 ? ミドルウェアのコンサルティング業務を担当 – Oracle WebLogic Server – Oracle Coherence – Oracle Application Server… 4
5.
jcmd をさわってみよう ? jcmd
とは – Java 7u4 HotSpot から利用できるようになった診断 ツールの一種 – JRockit で提供されていたJRCMDのHotSpot版 – 主な機能 ? jps 相当のプロセスリスト出力 ? PerfCounter.print による性能情報スナップ ショット出力 ? スレッドダンプ出力 ? ヒープダンプ出力 ? Java FlightRecorder との連携 5
6.
jcmd をさわってみよう ? 使い方
– 場所 ? JDKのbin以下にあります ? <JDK install dir>binjcmd.exe 6
7.
jcmd をさわってみよう – コマンド
? $ jcmd – 起動ノード上で稼働しているJVMの一覧が出力 される ? $ jcmd <pid> help – 対象ノードで利用可能なコマンド一覧が出力さ れる ? $ jcmd <pid | main class> <command | PerfCounter.print | -f filename> – pid を指定してコマンド実行 – PerfCounter.print : jinfo, jstat などで取 得可能な情報を一度に出力 – -f : file名でファイルに記載されたコマンド 7 を実行可能
8.
DEMO #1
8
9.
jcmd をさわってみよう ? コマンド一覧(JMX他) コマンド名
impact 機能 No 商用機能の有効化と VM.commercial_features ステータス確認 ManagementAgent.stop No JMX Agent の停止 ManagementAgent.start_local No JMX Agent のローカル起動 ManagementAgent.start No JMX Agent のリモート起動 9
10.
jcmd をさわってみよう ? コマンド一覧(スレッド) コマンド名
impact 機能 Medium スレッド一覧の出力 スレッド数に依 Thread.print 存 -l でconcurrent の lock に関するスレッ ド出力が可能 10
11.
jcmd をさわってみよう
? コマンド一覧(GC 1of2) コマンド名 Impact 機能 High ヒープ上にあるクラスのイン ヒープサイズとク スタンス数とバイト数を表示 ラス数に依存 -all でunreachable オブジェ GC.class_histogram クトも表示 High ヒープダンプ出力(HPROF形 ヒープサイズに依 式) GC.heap_dump 存 -all を指定しない場合には full gc がリクエストされる 11
12.
jcmd をさわってみよう ? コマンド一覧(GC
2of2) コマンド名 Impact 機能 Medium System#runFinalization() GC.run_finalization クラス数に依存 の実行 Medium System.gc() の実行 ヒープサイズとク GC.run ラス数に依存 12
13.
jcmd をさわってみよう ? コマンド一覧(VM情報
1of2) コマンド名 impact 機能 Low 該当VMの起動時間出力(秒) VM.uptime -date で出力時間を併せて表示 Low 該当VMに指定されたJVMオプ ションの表示 VM.flags -all で全オプションと値の出 力 13
14.
jcmd をさわってみよう ? コマンド一覧(VM情報
2of2) コマンド名 impact 機能 VM.system_properties Low System Properties の表示 VM.command_line Low JVM コマンドラインの表示 VM.version Low バージョン情報の表示 help Low Help ドキュメントの表示 14
15.
jcmd をさわってみよう ? コマンド一覧(Java
FlightRecorder 1of2) コマンド名 impact 機能 Low Java FlightRecorder の記録を停止。 ファイル名、recording id などを指定 JFR.stop Low Java FlightRecorder の記録を開始。対 象VM上で-XX:+UnlockCommercialFeatures および –XX:+FlightRecorder オプション JFR.start が必要 15
16.
jcmd をさわってみよう ? コマンド一覧(Java
FlightRecorder 2of2) コマンド名 impact 機能 High 記録中のJFRのスナップショット JFR.dump ダンプを取得(記録は継続) Low JFR の記録オプションの確認 JFR.check 16
17.
jcmd をさわってみよう ? ユースケース
– HPROFの動的取得 ? ただしheapdumpのみ – JMX remote port を臨時で空けて接続 ? JMXオプション無しのJVMプロセスに 対して動的にアタッチ 17
18.
DEMO #2
18
19.
jcmdをさわってみよう ? JMX リモートポートを空ける
– $ jcmd <pid> ManagementAgent.start jmxremote.port=<port#> jmxremote.authenticate=false jmxremote.ssl=false ※authenticate, ssl 設定解除はセキュリティ 上の問題があるので注意してください 19
20.
jcmd をさわってみよう ? jcmdは…
– JDK に付属するJava VM診断ツール – jps, jstat など既存ツールで取得していた情 報を1コマンドに集約 ? ただし、用途別に使い分けるのが良いで しょう – さらなる機能拡張、Java FlightRecorder と の連携強化に期待 ? 結論 – まだまだです! 20
21.
jcmd をさわってみよう ? QA
– Java 6 など古いバージョンにアタッチできる か? ? できません(JDK7u4以降のみ) – Java Mission Control がバンドルされている JDKの入手方法は? ? My Oracle Support からダウンロードして ください 21
Download