9.1.4 クライアント性能モニタ機能で測定できるWebアプリケーションの処理時間と分析方法
(1) 測定できる処理時間
クライアントがWebブラウザを操作するときの処理のサイクルを次の図に示します。
図9-2 Webブラウザから見たWebアプリケーションの処理サイクル
![[図データ]](figure/zu090200.gif)
クライアント性能モニタ機能で測定できるWebアプリケーションの処理時間について説明します。なお,図中の数字は,説明の番号と対応しています。
- 通信時間((1)~(2))※1※2※3※4
- Webブラウザが,アプリケーションサーバに対してリクエストを送信してから,レスポンスを受けて画面の描画を開始するまでの時間です。
- 描画時間((2)~(3))※2※3※4※5
- Webブラウザが画面の描画を開始してから,画面の描画が完了するまでの時間です。
- 応答時間((1)~(3))※3※4
- ユーザがサーバに対するリクエストを送信してから,次の操作ができるようになるまでの時間です。通信時間と描画時間の合計に当たります。
- 操作時間((3)~(1))※3※4
- 画面の描画が完了したあと,次の操作(アプリケーションサーバに次のリクエストを送信する,ブラウザを閉じるなど)を実行するまでの時間です。
- 注※1
- 最初にWebアプリケーションへリクエストした場合,クライアント性能モニタ機能を適用していない画面から適用しているWebアプリケーションへリクエストを送信した場合など,通信時間が記録されないことがあります。
- 注※2
- Webブラウザの処理によって,サーバからすべてのレスポンスを受信する前に,Webブラウザが画面の描画を開始することがあります。この場合,画面の描画開始以降に並行して実行された通信処理の時間は,通信時間としては記録されません。この場合の例を次の図に示します。
図9-3 すべてのレスポンスを受信する前にWebブラウザが画面の描画を開始する場合の処理時間の例
![[図データ]](figure/zu091000.gif)
- 注※3
- WebアプリケーションがダイナミックHTMLの各種イベントで独自の処理を実行するような場合,その独自の処理時間が通信時間,描画時間,操作時間のどの情報として記録されるかは不定です。
- 注※4
- 記録される値には,クライアント性能モニタ機能自体が動作する処理時間も含まれます。
- 注※5
- ダイナミックHTMLを利用したWebアプリケーションの場合,Webブラウザの描画完了イベントが通知されたあと,さらに表示内容を変化させることができます。この場合,Webブラウザの描画完了イベントが通知されるまでの時間を描画時間として記録します。それ以降の表示内容を変化させる処理時間は,描画時間としては記録されません。
(2) ログシーケンス
ログシーケンスとは,Webアプリケーションを操作した場合に画面遷移の単位で測定される性能データの集まりを指します。性能データはログシーケンスの単位で管理されます。あるページの性能データについて確認する場合,ログシーケンスの内容を分析することで,クライアントがWebアプリケーションのどのような画面遷移の結果として処理を実行したのかを確認できます。ログシーケンスのイメージを次の図に示します。
図9-4 ログシーケンス
![[図データ]](figure/zu090300.gif)
ログシーケンス1は,ブラウザ1の画面が遷移することで測定された性能データのすべてを示します。ログシーケンス2は,ブラウザ1から別の画面(ブラウザ2)が表示された場合に,ブラウザ2の画面が遷移することで測定された性能データのすべてを示します。このように,ログシーケンスはある操作を契機として分岐します。ログシーケンスの分岐について,次に示します。
- ログシーケンスの分岐
- ログシーケンスは次の操作を契機として分岐します。
- 複数のWebブラウザを起動して同じWebアプリケーションにアクセスしている場合※1
- Webブラウザを閉じたあと,再びWebブラウザを開いてWebアプリケーションにアクセスした場合※2
- ほかのサイト,またはほかのWebアプリケーションにアクセスした場合※2※3
- ポップアップウィンドウを開いたり,リンクを新しいウィンドウで開いたりした場合
- 注※1
- 一方のWebブラウザを操作している時間は,もう一方のログシーケンスの性能データには操作時間として計上されます。
- 注※2
- 分岐の契機が認識されないで,直前に操作していた画面のログシーケンスとつながることがあります。その場合は,通信時間の値が実際の通信に掛かった時間よりも長く計上されます。
- 注※3
- フレーム構成のWebブラウザでほかのWebページやWebアプリケーションへの遷移があると,ログシーケンスが複雑に分岐したように認識されることがあります。
(3) 処理時間の分析
測定した処理時間を分析することで,次のことを確認できます。
- システム性能に問題がないか。
システム性能に問題がないかを確認したい場合は,応答時間と操作時間に注目します。応答時間の値が大きい場合は,システム性能に問題があるおそれがあります。操作時間の値が大きい場合は,必ずしもシステム性能に問題があるとは限りませんが,Webアプリケーションがユーザにとって操作しにくい画面構成になっている場合が考えられます。
- サーバ側,Webブラウザ側のどちらに問題があるのか。
問題点がサーバ側の処理にあるのか,またはWebブラウザ上の処理にあるのかを分析したい場合は,通信時間と描画時間の比率に注目します。通信時間の値が大きい場合,サーバ側での処理に問題があるおそれがあります。描画時間の値が大きい場合,負荷の大きいスクリプト処理などによって,Webブラウザの画面の描画処理に時間が掛かっているおそれがあります。
(4) 性能解析トレースとのマッチング
次の二つの性能データをマッチングさせることで,サーバ側とクライアント側の処理を含めたWebアプリケーションの処理全体の性能情報を分析できます。
- クライアント性能モニタ機能で測定したWebブラウザ上の性能データ
- 性能解析トレースで測定したサーバマシン上の性能データ
クライアント性能モニタ機能で通信時間として記録された時間内の処理は,性能解析トレースでさらに詳しく分析できます。性能解析トレースについては,マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守/移行/互換編」の「6. 性能解析トレースを使用したシステムの性能解析」を参照してください。
- マッチング方法
- クライアント性能モニタ機能では,リクエストごとに問い合わせIDが付与されます。この問い合わせIDは性能解析トレースのルートアプリケーション情報と対になっています。問い合わせIDの定義方法については,「9.2.3 問い合わせIDの定義方法」を参照してください。
- 問い合わせIDにマッチしたルートアプリケーション情報を確認してください。
- 性能解析トレースとクライアント性能モニタ機能のマッチングについて次の図に示します。
図9-5 性能解析トレースとクライアント性能モニタ機能のマッチング
![[図データ]](figure/zu091100.gif)