解説●ニーズ高まるJava性能解析ツール(下)“性能の悪さ”を数値で指摘,利用目的に合った製品を選び効果を上げる***** 前回(上)を読む*****
監視用バイト・コードで負荷を軽減一方のシステム解析ツールは,Javaで構築したシステム全体をモニタリングし,ボトルネックを切り分けることに主眼を置いている。当然,出番は結合テスト以降である。 このツールは負荷テストや本番運用時にも利用するため,プログラム解析ツールよりもモニタリングの負荷を減らす必要がある。Wily 4やPerformaSureなどは,プログラムに監視用のバイト・コードを付加することでオーバーヘッドを抑えている(図3[拡大表示])。 監視用のバイト・コードは,クラス・ファイルをJavaVM上にロードする際に付加。ユーザーのプログラムには影響を与えない。エージェントが監視用バイト・コードからクラスの実行時間や回数をモニタリングし,サーバーに情報を蓄積する。
トランザクションの中身を探るシステム解析は,トランザクションをキーに性能のボトルネックを切り分ける。PerformaSureは,各種エージェントからパフォーマンス情報を収集し,トランザクションの実行パスを再現(図4[拡大表示])。この解析により,プログラムがボトルネックと分かれば,先のプログラム解析ツールを使ってソース・コードを調べる,という手順でチューニングを進める。Wily 4も,「Transaction Tracerで,Webコンテナに入ってから出るまでの“トランザクション”の内訳が解析できる」(アイ・ティ・フロンティア サービス事業統括本部 サービスデリバリー本部 第四アウトソーシング部 課長 飯作宣朗氏)*5。 米Mercury InteractiveのTopazもトランザクションの性能分析が可能だが,モニタリングの方法は他のツールと異なる。Topazは,仮想ユーザーがプログラムにアクセスし,そのトランザクションを解析する。ユーザーの体感をベースにしている*6。J2EEブレークダウン機能を使えば,コンポーネント・レベルで内訳が把握できる*7。 プログラムとシステム,両方にまたがって解析が可能な製品もある。Precise/Indepth for J2EEは,クラスやメソッドだけでなく,SQL文の実行時間も計測。これにより,APサーバーとデータベース,どちらの問題かを切り分ける*8。プログラム解析では,性能の悪いクラスの特定,改善を支援するアドバイス機能も備えている。 (森山 徹=tmoriyam@nikkeibp.co.jp)
連載新着記事一覧へ >>
|