ArrowVision更新しました〜!

油断すると1年ぶりになってしまうところで更新です(^^;
というわけで、ArrowVision Ver.3.1を公開しました。*1


http://www.smg.co.jp/service/products/arrow_vision/index.html


更新履歴を見てもらえると判るとおり、前のバージョンが1.0β2(!)
それが一挙に3.1なので、かなりムチャなバージョンのつけ方をしてます。


今回の目玉は、なんと言っても、

    1. メッセージの処理時間を計算するようになった。
    2. メッセージの一覧がソートできるようになった。

という2点です。*2
これでパフォーマンスの解析がかなり効率化されました。
(おいおい、解析の基本手順なんかも公開したいと思います。)


実際問題、私もパフォーマンスチューニングを依頼される事が多いのですが、これでもう、ArrowVisionを使いまくりです。


当社のJaTS*3でも大活躍中のArrowVision
ぜひ、活用ください。

*1:S2JmxJavelinも近々更新する予定です。S2Javelin.NETも。

*2:新人のS君が頑張ってくれました。

*3:http://www.smg.co.jp/service/consulting/JTSS/index.html

久しぶりの更新です

と、この間更新をサボってたのは、かなり大きなシステムトラブルに取り組んでたせいですが、
それも落ち着いてしばらく経ったので、これからは頻繁に更新しようと思います。


とはいえ、この間、何もしていなかった訳ではありません(^^;

  1. S2JmxJavelinの実システム適用が始まった
  2. S2Javelin.NET、S2JmxJaveli.NETの開発を始めた


と、いろんな事がありました。
(S2JmxJavelin.NETっていうのは、名前を変える必要がありますね。)


S2JmxJavelinはSeasar Conferenceでも好評だったので、使って頂いていて、今後も適用が広がりそうです。
(性能面への影響とか、そのうち、しっかりデータを出せるのではないかと。)


S2Javelin.NET、S2JmxJaveli.NETは、11月には公開する予定で開発を進めています。
S2Javelin.NETはもう動いています。もともと小さいプロダクトですからね。)


というわけで、水面下で開発が続くJavelinファミリーを今後ともよろしくお願いします。

Seasar Conference 2006 Spring

というわけで、S2JmxJavelinを展示しました。
S2Javelinともども、思ったよりも多くの方に使って頂いていたのは、
非常に嬉しかったです。
いろんな要望を出してくださった皆さんにも感謝です。


・・・こういう場でいろいろと話すことで、
自分も思っていなかったフィードバックを受けられるのは大きいですね。


実際、S2JmxJavelinは試験〜運用をターゲットにしており、
S2Javelinと棲み分けていますが、
殆どの方に、開発フェーズのツールと見られていました。
性能測定ということで、プロファイラの一種と思われた方も多いようです。
確かに、あまり強調していませんでしたね。


S2Javelin Familyのドキュメントにも、
反映する必要がありそうです。


そして、S2JmxJavelin.NETも作成することに決めました。
S2Javelin.NETはエリポンがやってくれるでしょう。)

ブリンクした

ずいぶん、久しぶりの更新になってしまいました。


5/14のカンファレンスを目指して
S2JmxJavelinのパワーアップに勤しんでたわけですが、
だいたい、形になってきました。


今回追加するのは、

  1. ArrowVisionとの連携
  2. リアルタイムアラーム

になります。
以前の予告に近いですね。


ArrowVisionとの連携ですが、閾値を超えるアクセスがあった場合に、Javelin形式のファイルを出力することにしました。
本当は、負荷を避けるためにも、S2JmxJavelinとArrowVision間で通信したいところなのですが、ArrowVisionに手を加えるのは今回避けてます。


リアルタイムアラームですが、こちらはJMXのNotifyを利用して、閾値を超えるアクセスがあった場合に、Viewerにアラームを送るようにしました。
クラス図上で、問題のあったアクセスに関連するクラスがビカビカと点滅します。
こんな感じ。



本当はこれがブリンクするわけです。全部が赤いと、本当に重要な部分が見分けづらいので、色に階調をつけるとかも考えてます。


なので、今回追加した機能を使うと、

    1. 遅いアクセスを発見
    2. ArrowVisionで遅い場所を確認

という感じで、サクサクっと解析を進めることができます。

ボトルネック?

http://s2javelin.sandbox.seasar.org/s2jmxjavelin.html


で公開している以下のスクリーンショット


http://s2javelin.sandbox.seasar.org/s2jmxjavelin_02.png


を見ていて気づかれた方もいるかと思いますが、

  • employeeEdit.html
  • employeeList.html
  • employeeSearch.html


の処理時間が100 msecを超えています。
Action〜Daoの処理が数msecで収まっていることを考えると、
ユーザからのアクセスからActionの処理開始までの処理が
ボトルネックになっていると考えて良さそうです。
(ひょっとしたら、以前話題になったdiconファイルの分割が原因かもしれません。・・・S2JmxJavelinのServlet Filterに何か問題があるのかも知れませんが。)


もっとも、最大処理時間と平均処理時間に差がある場合は、
HotSpotコンパイラによる最適化が走る前に測ってしまったかも知れません。
現時点では、なんとも言えませんので、これも要確認ですね。

新バージョンを公開しました

というわけで、

  • S2JmxJavelin Ver. 0.3.0
  • S2JmxJavelinViewer Ver. 0.2.0

を公開しました。


http://s2javelin.sandbox.seasar.org/s2jmxjavelin.htmlからダウンロードできます。


2段階の閾値による、表示文字色の変更機能も追加しました。
上記ページのスクリーンショットで確認できます。
メソッド右横の数値が:区切りで2つに増えていますが、
前が最大処理時間、後ろが平均処理時間です。


作っていると、いろいろとアイデアが膨らんでくるのが、
嬉しくもあり、苦しくもあるところですが、今のところ、

  • リアルタイム監視機能(閾値を超えたメソッドを検出すると点滅する)
  • ArrowVisionとの連携(閾値を超えたメソッドのコールツリーをシーケンス図形式で表示)
  • 呼び出し回数に応じて線の太さを変える
  • メソッドを選択すると呼び出し元/先のメソッドを強調表示


などを考えています。
(実現性で取捨選択するかも知れません。)


これぐらいを実現したところで機能をFIXして安定化フェーズに移行する予定です。
チュートリアルも書く予定です。)