機能と技術からわかる!システム基盤の実力

第7回 ユーザ視点でWebシステムのユーザビリティを探る「応答性能モニタリング技術」②クライアント性能モニタ機能で問題解決

この記事を読むのに必要な時間:およそ 3 分

クライアント性能モニタ機能の効果

クライアント性能モニタ機能を導入することで,前回説明した従来のモニタリング手法の問題点が解決できます。

高精度な応答性能の測定が可能

クライアント性能モニタ機能では,Webブラウザを利用してクライアント側で応答性能を測定するため,通信時間や描画時間,操作時間といった時間を測定できます。従来のサーバ側での性能測定ではわからなかったユーザ視点での高精度な測定が可能になります。

定義ファイルの変更だけで導入可能

クライアント性能モニタ機能はWebアプリケーションにサーブレットフィルタの設定を行うだけで使用できます。Webアプリケーションの変更や測定用ツールの追加インストールは必要ありません。また,従来のモニタリングで必要だった測定者の派遣やユーザ,開発者の協力も不要になり,導入コストを低減できます。

レスポンスにモニタリング機能を自動的に付加

クライアント性能モニタ機能では,Webレスポンスに自動的に付加されるモニタリング用のコードにより,応答性能を測定します。このため,Webアプリケーションの内容に変更があった場合でも継続的な測定が可能です。また,大規模な開発テストの際にも何台でも自動測定ができます。

表2 クライアント性能モニタ機能導入による効果

従来手法の問題(前回の表1参照)クライアント性能モニタ機能導入の効果
応答性能の測定精度が低い高精度な応答性能の測定が可能
人やツールのコストが高い定義ファイルの変更だけで導入可能⇒ツールのインストールが不要⇒アプリケーションの改変が不要
ユーザ・開発者の協力が必要
アプリケーション・環境ごとに対応要
継続/多数同時測定が困難レスポンスにモニタリング機能を自動的に付加

クライアント性能モニタ機能による解析の例

クライアント性能モニタ機能を利用すると,クライアントのWebアプリケーションに関する性能情報をモニタページで確認できます。また,クライアント性能モニタ機能が異常値と判断した測定値はモニタページ上で赤く表示されます。これらの機能を活用して,次の順に性能ボトルネックを解析できます。

①システム性能に問題がないか

モニタページに表示された応答時間と操作時間を確認します。応答時間の値が大きい場合は,システム性能に問題がある可能性があります。操作時間の値が大きい場合は,必ずしもシステム性能に問題があるとは限りませんが,Webアプリケーションがユーザにとって操作しにくい画面構成になっていると考えられます。

②サーバ/クライアントのどちらに問題があるのか

応答時間に含まれる,通信時間と描画時間に注目します。通信時間の値が大きい場合,サーバ側での処理に問題があるおそれがあります。描画時間の値が大きい場合,負荷の大きいスクリプト処理などによって,Webブラウザの画面の描画処理に時間がかかっているおそれがあります。

たとえば,図5のようにモニタページ上の描画時間が赤く反転表示している場合,Webブラウザの処理性能に問題があると考え,クライアント側の処理を見直します。

図5 クライアント側が性能ボトルネックのケース(描画時間がしきい値を超えている)

図5 クライアント側が性能ボトルネックのケース(描画時間がしきい値を超えている)

性能解析トレース機能とのマッチング

性能解析トレース機能とは,Cosminexusが独自に提供している機能です。これを利用すると,リクエストごとにサーバの主要となるポイントで,時刻やイベント情報などを詳細に出力できます。このため,各リクエストで,どの個所に時間がかかっているのかを容易に特定できるようになります。クライアント性能モニタ機能で応答性能の測定結果として記録された処理は,性能解析トレースと突き合わせることでさらに詳しく分析できます。

クライアント性能モニタ機能では,リクエストごとに問い合わせIDが付与されます。この問い合わせIDと対になる情報が性能解析トレースには出力されています。そのため,問い合わせIDをキーにして,応答性能の測定結果,性能解析トレース,DBサーバのログを確認し,クライアントがリクエストを送信してから,応答結果を描画するまでのすべての処理をトレースできます。

図6 性能解析トレースとクライアント性能モニタ機能のマッチング

図6 性能解析トレースとクライアント性能モニタ機能のマッチング

クライアント性能モニタ機能の適用モデル例

では,クライアント性能モニタ機能の適用例をご紹介しましょう。

Webアプリケーションの性能評価

Webアプリケーションの性能評価では,主にブラウザ上の動作にボトルネックが存在しないかを確認します。この場合,アプリケーション開発者がテスターとなり,実際にWebアプリケーションを実行して性能評価を行います。収集した性能データは,クライアント側でモニタページを表示して解析します。

図7 Webアプリケーションの性能評価のモデル例

図7 Webアプリケーションの性能評価のモデル例

Webアプリケーションのユーザビリティ評価

Web アプリケーションのユーザビリティ評価にも,クライアント性能モニタ機能が利用できます。この場合,開発者以外の複数人にテスターとなってもらい,ユーザビリティ評価を行います。また,収集した複数の性能データは,サーバ側でまとめて解析します。

サーバ側で性能データを解析する場合は,Webアプリケーションにクライアント側からサーバ側へ性能データを送信する仕組みを作り込む必要があります。Cosminexusで提供しているAPIやサンプルを元に,クライアント側に格納された性能データを読み出したり,クライアント側からサーバ側へ性能データを送信したりするWebアプリケーションを作成します。

図8 Webアプリケーションのユーザビリティ評価のモデル例

図8 Webアプリケーションのユーザビリティ評価のモデル例

まとめ

クライアント性能モニタ機能を利用することで,ユーザ視点でのモニタリングが可能となります。さらに,サーバの処理記録と突き合わせることで一貫したシステム性能の分析ができるため,迅速な問題解決を実現できます。 開発中のWebアプリケーションに対して性能評価を実施することで,Webアプリケーションの性能を事前に把握できたり,障害が発生した場合に,問題解析用の資料を取得し,応答性能の問題点を切り分けることができます。

また,クライアント性能モニタ機能は,特別なツールや人手を使わずに自動的に測定できる技術です。分散拠点での自動測定や大規模な開発テストなどにも利用できます。

出典:Cosminexusホワイトペーパー「ユーザ視点での応答性能モニタリング技術」
URL:http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/whitepaper/pdf/wp_client.pdf