これらのキーワードがハイライトされています:PukiWiki

? 1.2

ダウンロード(295kb)???? 起動(要JDK1.4以降)

new!

  • 1.2リリース(2004/4/4) →虚無僧や CSV ファイルのグラフ化機能が追加されました。WebLogic? その他のチューニングに。
  • 1.1リリース(2004/3/31)
  • verbose:gc ログの解析ができるようになりました。ヒープサイズやガベージコレクションのチューニングに。 →

"侍" とは

侍 はJavaのヒープ使用状況やスレッドダンプを解析するGUIツールです。 標準出力・標準エラー出力をリダイレクトしたログファイルよりスレッドダンプのみを切り出して色分け表示したり、-verbosegcオプションによるログをグラフ表示したりできるためたいへん容易に解析できるのが特徴です。

システム要件

OS: JDK 1.4 以降の実行環境をサポートする Windows や Unix 検証済みの解析対象JVM: JDK 1.3.x,JDK 1.4.x 準拠の Apple/BEA/Sun 製JVM

起動方法

侍 は以下の2種類どちらかの方法で起動させることができます。

Java Web Start による起動

ネットワーク経由で起動する方法です。デスクトップやスタートメニューにショートカットを作成できたり、バージョンアップ時に自動的にアップデートされたりなどの特徴があり、お勧めの起動方法です。 J2SDK1.4.0 以上がインストールされている環境でブラウザから以下のアイコンをクリックすることで自動的にインストール、起動を行うことが出来ます。

侍を起動→

初回起動時にはセキュリティ上安全でない、起動を勧めない旨のメッセージが表示されますが、気にせず「開始」を押して起動してください。 これは侍がログファイルの読み取り、解析結果のキャッシュとしてローカルファイルシステムにアクセスする必要があるためです。これはテンポラリディレクトリに出力されます。悪意のあるコードは含まれておりませんが心配のある場合は付属のソースコードをご覧頂くか、コードを逆コンパイルの上解析して頂いて構いません。

画面1 セキュリティ警告画面

コマンドインからの起動

samurai1_0.zip を適切なディレクトリへ解凍した後、samurai.sh/samurai.cmd をダブルクリックするか、コマンドラインより指定することで起動できます

スレッドダンプの解析

初期画画面

侍 を起動すると画面2のようなウィンドウが表示されます。スレッドダンプを含むログファイルをドロップすると解析が開始され、画面3のように「スレッドダンプ」とうタブが現れますます。

画面2 初期画面

画面3 スレッドダンプタブの表示

スレッドダンプタブ

スレッドダンプタブをクリックすると、解析結果が表示されます。 アイドル状態のスレッドは灰色で、ブロック(同期待ち)状態のスレッドは赤で表示されます。 解析結果にはテーブル表示(画面4)/全スレッド表示(画面5)/時系列表示(画面6)の3通りの表示があります。 多くの場合はテーブル表示でスレッドの使用状況を確認し、時系列表示でスレッドの動きを確認することで解析を進めます。 常に赤く表示されているスレッドや、全てのスレッドダンプにおいて同じ個所で停止しているスレッドは問題を抱えている可能性があります。

画面4 テーブル表示

画面5 全スレッド表示

画面6 時系列表示

ヒープ使用状況の解析

Java は起動時に -verbose:gc というオプションをつけるとガベージコレクションを行った際にメッセージが標準エラー出力に記録されます。 メモリリークしていないか、ヒープが十分に確保されているかなどがこのメッセージからわかるのですが、文字で表現されているため解析が困難です。 侍にこのログを渡すと「メモリ」というタブが現れます。赤い線がガベージコレクション前の使用量、黄色い線がガベージコレクション後の使用量、グレーの線がコレクションに要した時間を表します。 表示中のグラフは Ctrl+C (Macでは Cmd+C) でコピーすることができます。

画面7 メモリタブ

虚無僧ログ / CSV ファイルのグラフ化

虚無僧は WebLogic? の状態監視に大変有用で、運用時に機械的に用いるのには必要十分です。 しかし、開発時・パフォーマンスチューニング時などに人間がその情報を理解するにはテキスト形式では不十分です。 もちろんスプレッドシートなどを用いてグラフ化することは可能ですが、比較的苦痛な作業が必要で、またリアルタイムに分析を行うことはできません。 侍は虚無僧のログを含む、CSV 形式のテキストファイルを渡すことで即座に内容をグラフ化してくれます。 表示中のグラフは Ctrl+C (Macでは Cmd+C) でコピーすることができます。

画面8 虚無僧グラフ

グラフ表示のカスタマイズ

ヒープ使用状況・虚無僧ログはグラフ表示されますが、この画面は簡単なカスタマイズを行うことが可能です。 やりかたは簡単で、グラフ左上に表示されているラベルをクリックして現れるダイアログで設定後、[設定]ボタンを押すだけです。 折れ線の色、表示ラベル、最大値(グラフの X 軸方向の可視領域)を設定できます。 画面9 グラフのカスタマイズ

ログのインクリメンタルサーチ機能

侍は手放しでも便利ですが、スレッドダンプやヒープ使用状況の解析だけがとりえではありません。侍へドロップしたファイルはリアルタイムに監視され、ログが追加されると都度ログタブに表示されます。つまり Unix における tail -f filename と同等に利用できます。 また、ログ・スレッドダンプどちらのタブでも内容の検索を行うことが出来ます。いわゆるインクリメンタルサーチ機能で、キーボードをタイプした瞬間からキーワードがハイライトされます。キーワードを入力後は Ctrl+G(Mac では Cmd+G)または F3で次、Shift+Ctrl+G(Mac では Shift+Cmd+G)または Shift+F3 で前の候補がハイライトされます。 設定パネルより正規表現の使用・不使用、大文字小文字の区別・無視も設定できます。

画面10 候補のハイライト

画面11 設定パネル

FAQ

 Q1. 侍は WebLogic 専用ですか?
 A1. いいえ。侍はどのような Java プログラムにも使えます。ただし、スレッドダンプ / verbosegc ログの解析 機能は Apple(1.4.2_05),BEA(7.0SP4,8.1SP2),Sun(1.3.1_08,1.4.1_05)の JVM でのみ検証されています。
 Q2. 侍の名前の由来はなんですか?
 A2. 意味はありません。商標上の問題が発生しないよう一般名詞にしています。

お名前:

ライセンス

 ・侍は営利、非営利目的を問わずどなたでも無償で使用、改変を加えない複製、またそれの配布を行うことが出来ます。
 ・個人、会社内での利用の範囲内であれば付属のソースを改変してご利用頂くことが出来ます。改変したものはソース、バイナリ等いかなる形でも個人間、組織内を超えた再配布はご遠慮ください。

免責事項

 ・スレッドダンプの解析には Java に関する専門的な知識が必要です。侍は Java アプリケーションのハング、スローダウン時のスレッドダンプ解析を助けますが、トラブルの解決をお約束するものではありません。
 ・侍を利用することによって発生した損害に対して作者は一切責任を負いません。

サポート

 ・侍に関するご意見、ご感想、改善要求などはお気軽にどうぞ。

お名前:

Copyright 2003,2004 ? Yusuke Yamamoto All rights reserved.


Reload   New Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes
Last-modified: Tue, 06 Mar 2007 16:36:08 JST (12h)