Oracle JRockit 運用管理入門 Mission Control監視ツール, jrcmdコマンドの活用

Preview:

DESCRIPTION

JRockit Mission Control 4.0 JRockit専用のGUI ベースの運用監視ツール 機能一覧 JRockit Management Console ・・・ CPU 使用率、ヒープ使用状況、スレッド使用状況、MBean監視 JRockit Memory Leak Detector ・・・ 迅速なメモリリーク検出、オブジェクトの参照関係の階層表示 JRockit Flight Recorder ・・・ GC 詳細情報、ホットパッケージ、ホットメソッド情報、処理遅延箇所検出 jrcmd診断コマンド JRockit専用のコマンドラインツール

Citation preview

<Insert Picture Here>

日本オラクル株式会社Fusion Middleware事業統括本部

Oracle JRockit 運用管理入門Mission Control監視ツール, jrcmdコマンドの活用

Copyright© 2011, Oracle. All rights reserved. 2

Oracle JRockit R28の運用監視ツール

• JRockit Mission Control 4.0

• JRockit専用のGUI ベースの運用監視ツール

• 機能一覧• JRockit Management Console ・・・ CPU 使用率、ヒープ使用状況、スレッド使用状況、MBean監視

• JRockit Memory Leak Detector ・・・ 迅速なメモリリーク検出、オブジェクトの参照関係の階層表示

• JRockit Flight Recorder ・・・ GC 詳細情報、ホットパッケージ、ホットメソッド情報、処理遅延箇所検出

• jrcmd診断コマンド

• JRockit専用のコマンドラインツール

Copyright© 2011, Oracle. All rights reserved. 3

JVMの監視 - JRockit Management ConsoleリアルタイムにJVMの内部情報を取得

<BEA_JAVA_HOME>/bin/jrmc.exe を起動後、「コンソールの開始」で接続します。

CPU使用状況 (JVM/Machine)、メモリ使用状況(JVM/Machine)をグラフ表示 任意のMBean情報の閲覧、更新、グラフ化、トリガ・アラートの設定 スレッド情報(スタックトレース、CPUビジー、デッドロック有無)の確認 メソッドプロファイリング

Management Consoleのオーバヘッドは非常に小さく、ほとんど無視できる程度大部分の情報はJRockit特有のMBeanとして常時更新されているため• 但し、監視対象のJRockitと同一マシンでのManagement Console起動はGUI負荷が高くなるため推奨しない

Copyright© 2011, Oracle. All rights reserved. 4

Management Consoleでメモリ情報を監視

Copyright© 2011, Oracle. All rights reserved. 5

Management Consoleでのスレッド監視

スレッドの選択

スレッドのスタックトレースが表示

Copyright© 2011, Oracle. All rights reserved. 6

Management Consoleでのスレッドダンプの取得

Print_threadsコマンドのGUI実行

Copyright© 2011, Oracle. All rights reserved.

JRockit Memory Leak Detector

• <BEA_JAVA_HOME>/bin/jrmc.exeを起動後、「メモリリークの開始」で接続します。

• JRockit Memory Leak Detector は、割り当てられたオブジェクトの種類、回数、サイズ、およびオブジェクト相互の関連性に関する情報を提供する、リアルタイムのプロファイリングツールです。

7

Copyright© 2011, Oracle. All rights reserved.

Memory Leak Detector

オブジェクト増加率の表示

8

増加率、ヒープ中の割合、ヒープ中に占めるサイズを表示

Copyright© 2011, Oracle. All rights reserved. 9

• リークオブジェクトからルートまでの最短の参照関係を、一気に展開表示させることが可能(R28.0.0より)

Memory Leak Detector

参照関係の表示

Copyright© 2011, Oracle. All rights reserved.

JRockit Flight Recorder突然のトラブルに対する新アプローチ

Java EE/ISVアプリ

Oracle

WebLogic

Server

直近(例: 24時間)の実行時情報を

記録し続ける

Java EE/ISVアプリ

App Server

JVM

Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-64 mixed

mode, sharing):

"Low Memory Detector" daemon prio=5 tid=0x0050a600

nid=0x1816a00 runnable [0x00000000..0x00000000]

"CompilerThread0" daemon prio=9 tid=0x00509cb0 nid=0x1816600

waiting on condition [0x00000000..0xf0b06358]

"Signal Dispatcher" daemon prio=9 tid=0x00509840 nid=0x1816200

waiting on condition [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x00509020 nid=0x1810200 in

Object.wait() [0xf0a04000..0xf0a04ab0]

at java.lang.Object.wait(Native Method)

- waiting on <0x26580360> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)

- locked <0x26580360> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)

at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00508c30 nid=0x180f200

in Object.wait() [0xf0983000..0xf0983ab0]

at java.lang.Object.wait(Native Method)

- waiting on <0x26580a50> (a java.lang.ref.Reference$Lock)

at java.lang.Object.wait(Object.java:474)

at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

- locked <0x26580a50> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x005013a0 nid=0x1804c00 waiting on condition

[0xf07ff000..0xf08002c0]

at java.lang.Thread.sleep(Native Method)

at ThreadTest1.method1(ThreadTest1.java:7)

at ThreadTest1.main(ThreadTest1.java:4)

"VM Thread" prio=9 tid=0x00508450 nid=0x1803c00 runnable

"VM Periodic Task Thread" prio=9 tid=0x0050bcb0 nid=0x1813000

waiting on condition

"Exception Catcher Thread" prio=10 tid=0x005015e0 nid=0

問題解決に必要な情報の多くは消失

原因究明に多くの時間が必要

履歴を含めた情報を記録し自動出力

迅速な原因究明を支援するGUIツール

• これまでのJava • JRockit Flight Recorder

1. トラブルの確実な原因追究を 「遡って」 実施可能2. 障害発生→改善のサイクルと手間を大きく短縮化

5%以下の低負荷

自動記録

JRockit VM

ダンプを解析…

2010.07 New Release!

as JRockit (R28)

with WebLogic 10.3.3

Copyright© 2011, Oracle. All rights reserved.

Copyright© 2011, Oracle. All rights reserved.

Copyright© 2011, Oracle. All rights reserved.

Copyright© 2011, Oracle. All rights reserved.

JRockit 診断コマンド ~jrcmd~

同一マシン上で稼働中のJRockitインスタンスに対してコマンドを発行して、JRockit内部の様々な情報を得たり、動作設定を変更することが可能 jrcmd <pid> <command>

主要コマンド start_management_server JRMCポートを開ける

kill_management_server JRMCポートを閉じる

startjrarecording JRAレコーディングを開始

stopjrarecording JRAレコーディングを停止

print_object_summary クラス別インスタンス数/メモリ使用量など表示

print_class_summary クラスロードされているクラスを全て表示

print_threads スレッドダンプを表示

print_memusage メモリ領域(Heap/Nativeなど)ごとの使用状況表示

runsystemgc Full GCを強制実行

verbosity 冗長ログの出力項目/出力先の変更

help 使用可能なコマンド一覧、各コマンド使用方法

Copyright© 2011, Oracle. All rights reserved.15

jrcmd使用例~メモリ利用量の見える化~

C:¥>jrcmd 3452 print_memusage

3452:

Total mapped 910368KB (reserved=74244KB)

- Java heap 524288KB (reserved=0KB)

- GC tables 17548KB

- Thread stacks 15104KB (#threads=41)

- Compiled code 12032KB (used=11329KB)

- Internal 904KB

- OS 29804KB

- Other 212640KB

- Java class data 97024KB (malloced=96458KB #116023 in 20923 classes)

- Native memory tracking 1024KB (malloced=495KB #8)

JVMプロセスが使用中の仮想メモリのサイズ(KB)※通常、Windowsのタスクマネージャで見える「仮想メモリ

サイズ」よりも大きくなる。何故なら、タスクマネージャで見えるのは、そのプロセスに排他的に割り当てられた「Private Bytes」のみであり、共有ライブラリ領域が含まれていないため。

ヒープサイズ(KB)※-Xms -Xmxで指定したサイズ

ネーティブサイズ(KB)※メソッドバイトコード、定数、JITコンパイル後のネーティブ

コード、最適化後のネーティブコード、スレッド管理用などの情報が格納される

Jrockit R28よりネーティブサイズで利用されている領域のサイズも正確に分かるようになりました。

Copyright© 2011, Oracle. All rights reserved. 16

便利なコマンドの紹介

• print_object_summary• ヒープで多数を占めているオブジェクトを表示する

(GC実行後の状況を表示)

• print_memusage• ネイティブ部分も含めたメモリの使用量を表示

• print_threads• 通常のスレッドダンプを出力する

• 利用可能な診断コマンド• http://download.oracle.com/docs/cd/E22646_01/doc.40/b61440/c

trlbreakhndlr.htm#i999067

Copyright© 2011, Oracle. All rights reserved. 17

概要 Oracleが提供&サポートするJava SE完全準拠のJVM

サーバサイド用途専用に設計された高信頼性のJVM※現在はクライアントサイド用途にも対応

Intelアーキテクチャ(Xeon, Itanium2)へ最適化された業界最高速のJVM※現在はSparc版も提供

歴史 1998 年スウェーデン アピールバーチャルマシン より初版がリリース 2002 年 BEA が アピールバーチャルマシン を買収 2008 年 Oracle が BEAを買収

Sun J2SE との互換性 java –version でベースとなる Sun J2SEのバージョンを表示

JRockitに含まれる各種ツール、JavaAPIは基本的にJ2SEと同一だが、J2SEでは定義されていない部分(ネーティブコード生成・最適化、メモリ管理、デッドロック検出、管理用コマンド、GUI管理ツール等)を固有実装

java version "1.6.0_05"

Java(TM) SE Runtime Environment (build 1.6.0_05-b13)

BEA JRockit(R) (build R27.6.2-20_o-108500-1.6.0_05-20090120-1116-windows-ia32, compiled mode)

java version "1.6.0_17"

Java(TM) SE Runtime Environment (build 1.6.0_17-b04)

Oracle JRockit(R) (build R28.0.0-679-130297-1.6.0_17-20100312-2123-windows-ia32, compiled mode)

R27.6.2

R28.0

(参考)Oracle JRockitとは?

Copyright© 2011, Oracle. All rights reserved.

(参考)JRockitJava SE 完全準拠の高機能 JVM

JRockit VM1 0 1 0 0

・・・ 0 0 1 1 11 1 0 1 0

実行時情報

Time

破棄

オンメモリ

で自動記

高速 : サーバーサイド用途に最適化。公式ベンチマークで実証済み。

安定 : GCによる遅延時間の平準化。ミリ秒単位の応答時間の維持を実現。 全てを記録 : 稼動状況を常に記録。予測外の事態でも過去に遡って分析可能。

レスポンスタイム(m

s)

100

150

200

250

300

100

150

200

250

300

不測のGC処理→処理の滞留、タイムアウト…

GCをJVMで制御(安定)

性能を犠牲にすることなく全ての挙動を記録

設定された時間枠(例: 前5分間)の稼動情報をオンメモリで常時保持。何か起きても過去に遡って分析可能。

#1 パフォーマンス(高速)

公式ベンチマーク(SPECjbb)• 処理性能数値の世界最高値• JVMあたりの性能数値の世界最高値

WebLogic Server

JRockit Real Time通常JVM

Copyright© 2011, Oracle. All rights reserved.

WebLogic Server関連情報

19

最新情報つぶやき中

OracleMiddle_jp

・人気コンテンツは?

・お勧め情報

・公開予告 など

twitter.com/OracleMiddle_jp/

slideshare.net/OracleMiddleJP

WebLogic Server関連資料

http://slideshare.net/OracleMiddleJP/tag/weblogic

Copyright© 2011, Oracle. All rights reserved. 20

OTNセミナー オンデマンド コンテンツダイセミで実施された技術コンテンツを動画で配信中!!

ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。

※掲載のコンテンツ内容は予告なく変更になる可能性があります。

期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。

OTN オンデマンド

最新情報つぶやき中

OracleMiddle_jp・セミナ情報

・お勧め情報

・公開予告 など

Copyright© 2011, Oracle. All rights reserved. 21

Oracle エンジニアのための技術情報サイト

オラクルエンジニア通信http://blogs.oracle.com/oracle4engineer/

• 技術資料

• ダイセミの過去資料や製品ホワイトペーパー、スキルアップ資料などを多様な方法で検索できます

• キーワード検索、レベル別、カテゴリ別、製品・機能別

• コラム

• オラクル製品に関する技術コラムを毎週お届けします

• 決してニッチではなく、誰もが明日から使える技術の「あ、そうだったんだ!」をお届けします

こんな資料が人気です

6か月ぶりに資料ダウンロードランキングの首位が交代!新王者はOracle Database構築資料でした。

データベースの性能管理手法について、Statspack派もEnterprise Manager派も目からウロコの技術特集公開中

オラクルエンジニア通信

最新情報つぶやき中

oracletechnetjp

Copyright© 2011, Oracle. All rights reserved. 22

■パフォーマンス診断サービス

•Webシステム ボトルネック診断サービス

•データベースパフォーマンス診断サービス

オラクル社のエンジニアが 直接ご支援しますお気軽にご活用ください!

オラクル 無償支援 検索

NEW

■システム構成診断サービス

•Oracle Database構成相談サービス

•サーバー統合支援サービス

•仮想化アセスメントサービス

•メインフレーム資産活用相談サービス

•BI EEアセスメントサービス

•簡易業務診断サービス

■バージョンアップ支援サービス

•Oracle Databaseバージョンアップ支援サービス

•Weblogic Serverバージョンアップ支援サービス

•Oracle Developer/2000(Froms/Reports)

Webアップグレード相談サービス

■移行支援サービス

•SQL Serverからの移行支援サービス

•DB2からの移行支援サービス

•Sybaseからの移行支援サービス

•MySQLからの移行支援サービス

•Postgre SQLからの移行支援サービス

•Accessからの移行支援サービス

•Oracle Application ServerからWeblogicへ移行支援サービス

ITプロジェクト全般に渡る無償支援サービス

Oracle Direct Conciergeサービス

NEW

NEW

Copyright© 2011, Oracle. All rights reserved. 23

インストールすることなく、すぐに体験いただけます

製品無償評価サービス

http://www.oracle.com/jp/direct/services/didemo-195748-ja.html

Web問い合わせフォーム「ダイデモ」をキーワードに検索することで申し込みホームページにアクセスできます

提供シナリオ一例

・データベースチューニング

・アプリケーション性能・負荷検証

・無停止アップグレード

・Webシステム障害解析

1日5組限定!

※サービスご提供には事前予約が必要です

• サービスご提供までの流れ

1. お問合せフォームより「製品評価サービス希望」と必要事項を明記し送信下さい

2. 弊社より接続方法手順書およびハンズオン手順書を送付致します

3. 当日は、弊社サーバー環境でインターネット越しに製品を体感頂けます

Copyright© 2011, Oracle. All rights reserved. 24

http://www.oracle.com/jp/direct/inquiry-form-182185-ja.html

Oracle Direct 検索

あなたにいちばん近いオラクル

Oracle Directまずはお問合せください

Web問い合わせフォーム フリーダイヤル

専用お問い合わせフォームにてご相談内容を承ります。

※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。

0120-155-096

※月曜~金曜 9:00~12:00、13:00~18:00

(祝日および年末年始除く)

システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。

システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。

Copyright© 2011, Oracle. All rights reserved. 25

以上の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Recommended