Seasar DI Container with AOP

S2Javelinの便利な使い方

このページでは、S2Javelinの便利な使い方を解説しています。





ボトルネックを見つける

1.はじめに-前提条件

このページでは、BottleneckEyeを使ってシステムの性能問題を発見し、 ArrowVisionで解析するまでの手順を示します。 S2Javelinに付属のreadme.txtに従って、 S2JavelinおよびBottleneckEyeのインストールを完了して下さい。
ArrowVisionについては、こちら を参照ください。

2.セットアップ

  1. まず、S2Javelinのパラメータを変更します。 javelin.properties中の「javelin.recordThreshold」 「javelin.alarmThreshold」の値を以下のように変更します。
    # ファイル出力を行うターン・アラウンド・タイムの閾値(単位:ミリ秒)
    javelin.recordThreshold=10000
    
    # BottleneckEyeへの通知を行うターン・アラウンド・タイムの閾値(単位:ミリ秒)
    javelin.alarmThreshold=10000
    
    # ファイル出力を行うターン・アラウンド・タイムの閾値(単位:ミリ秒)
    javelin.recordThreshold=3000
    
    # BottleneckEyeへの通知を行うターン・アラウンド・タイムの閾値(単位:ミリ秒)
    javelin.alarmThreshold=3000
    
    ここではターン・アラウンド・タイムの閾値を3000ミリ秒としました。 実際の値はシステムの要件やチューニングの目的に合わせて変更する必要があります。
  2. アプリケーション・サーバを起動し、アプリケーションを動作させます。 (起動直後は初期化処理などで通常よりも処理時間が必要となるため、 正しい測定結果を得るには、ウォーミングアップが必要です。)
  3. 続いて、Eclipseを起動し、「クラス図を作成する」 で作成したbeyeファイルを開きます。
  4. BottleneckEyeがアプリケーションに接続している (クラス図の背景が白色である)事を確認します。
  5. さらに、ArrowVisionで解析対象とするプロジェクトを指定しておきます。
    (こうしておくと、ArrowVisionからソースコードにジャンプできます。))
    1. まず、Eclipseで[Window]→[Preferences]とメニューを選択し、 設定ダイアログをオープンします。
    2. 続いて、リストの中からArrowVisionを選択します。
    3. ソースコードを参照するプロジェクトにチェックを入れて、OKボタンを押します。


3.データ取得

  1. アプリケーションの操作を行い、チューニング対象の処理を実行します。
  2. BottleneckEyeのクラス図上で、ブリンク(点滅)が発生すれば、測定成功です。


4.データの確認

  1. 動作解析用のJavelinファイル(.jvn)を回収します。 ファイルが出力されるのは以下のディレクトリです。
    # jvnファイルを出力するディレクトリへのパス。
    javelin.javelinFileDir=../logs
    
    javelin.propertiesファイルからの相対パス指定になります。
  2. ArrowVisionパースペクティブを開きます。
  3. メインビューに1で回収したファイルをドラッグ&ドロップします。
    シーケンス図が表示される事を確認して下さい。


5.解析

  1. メッセージビューをDurationカラムでソートします。
  2. シーケンス図上、一番深い部分で処理時間が大きいものを見つけます。
  3. メッセージビューのレコードをクリックすると、連動して、シーケンス図上でも選択されます。
  4. シーケンス図のアローをダブルクリックすると、呼び出し先のソースコードが開きます。
    (そこから時間のかかった処理がどこか、解析を進めると良いでしょう。)

    今回は、あらかじめsleepを仕込んでいました。