前の練習では,シナリオ実行の設計,制御,および実行の方法を学習しました。サーバをロードしたら,システムのパフォーマンスを改善するために,実行を分析して取り除く必要のある問題を特定します。
Analysis のセッション中に生成されるグラフおよびレポートには,シナリオのパフォーマンスに関する重要な情報が示されています。Analysis グラフおよびレポートを使用すれば,アプリケーションのボトルネックを簡単に特定でき,パフォーマンスを改善するにはシステムのどの部分の修正が必要かがわかります。
この練習は,次の項目で構成されています。
Analysis セッションの目的は,次のようにシステムのパフォーマンスの不具合を発見し,不具合の原因を特定することです。
次の項では,LoadRunner Analysis を起動して,パフォーマンスの問題を発見し問題の原因を特定するのに役立つグラフおよびレポートを作成,表示する方法を学習します。
HP LoadRunner Analysis を開きます。
[スタート]>[すべてのプログラム]>[HP Software]>[HP LoadRunner]>[Analysis]を選択するか,デスクトップ上の Analysis アイコンをダブルクリックします。HP LoadRunner Analysis が起動します。
Analysis セッション・ファイルを開きます。
本項ではより多様な結果を説明するため,前の練習で実行したものとほぼ同じシナリオを実行しました。ただし,今回のシナリオでは,仮想ユーザを 10 個ではなく 70 個使用しています。このシナリオの結果に基づいて作成されたAnalysis セッションを開きます。
Analysis には,次の主要なペインがあります。
注: ツールバーからアクセスできる追加のペインがあります。これらのペインは,画面上の任意の場所にドラッグしてドロップできます。
本項では,サービス・レベル・アグリーメント(SLA)を紹介します。
SLA とは負荷テストシナリオに対して定義した特定のゴールです。Analysis はこれらのゴールを,実行中に LoadRunner が収集,保存したパフォーマンスに関連したデータと比較し,ゴールの SLA スーテタスを判断します([成功]または[失敗])。
たとえば,スクリプト内のトランザクションの平均トランザクション時間に,特定のゴール,またはしきい値を定義することができます。テスト実行後,LoadRunner は定義したゴールを実際に記録されたトランザクション時間の平均と比較します。Analysis は定義した各 SLA のステータスを,[成功]または[失敗]と表示します。たとえば,実際の平均トランザクション時間が定義したしきい値を超えなかった場合,SLA ステータスは[成功]になります。
ゴール定義の 1 部として,負荷条件を考慮するよう SLA を設定できます。つまり,実行中の仮想ユーザ数,スループットなどの負荷のレベルに応じて,許容するしきい値が変化します。負荷が増加するに従い,より高いしきい値が許容されます。
定義されたゴールに従い,LoadRunner は次の方法で SLA ステータスを判断します。
SLA はシナリオ実行前に Controller で,またはシナリオ実行後に Analysis で定義できます。
次の項では,HP Web Tours の例を使用して SLA を定義します。HP Web Tours の管理者が book_flight および search_flight トランザクションの平均トランザクション時間が一定の値を超えるたびにそれを知りたいと想定します。これを実現するには,トランザクションを選択し,次にしきい値を設定します。これらのしきい値は,許容可能な平均トランザクション時間の最大値です。
また,特定の負荷条件を考慮してこれらのしきい値を設定します。この場合は実行仮想ユーザ数です。つまり,実行仮想ユーザ数が増えるにつれ,しきい値は上昇します。
なぜなら,HP Web Tours の管理者は平均トランザクション時間を可能なかぎり低く抑えたいですが,1 年の特定の時期にほかの時期に比べて高い負荷を HP Web Tours サイトが処理しなければならないと想定するのが妥当だからです。たとえば,旅行シーズンのピーク期間中,より多くの旅行エージェントがフライトの予約,日程の確認などのためにサイトにログインします。この高い負荷は妥当であるため,この時期の多少長い平均トランザクション時間は許容されます。
軽い負荷,平均負荷,重い負荷という,3 つの負荷シナリオを考慮するよう SLA を設定します。各シナリオはそれぞれのしきい値を持ちます。
SLA はシナリオの実行後,Analysis で定義します。
注: シナリオの実行前に Controller で SLA を定義することを推奨します。ただし,このチュートリアルでは前の練習で実行したものと同一のテスト・シナリオを分析していないため,SLA を Analysis で定義します。Controller で SLA を定義するには,[デザイン]タブの[サービス レベル アグリーメント]セクションで[新規作成]をクリックします。
サンプルのセッション・ファイル内の book_flight および search_flight トランザクションの平均トランザクション時間に特定のゴールを設定する SLA を定義します。
平均トランザクション時間は,設定した時間間隔で実行中に測定します。
SLA を定義するには次の手順を実行します。
監視するトランザクションを選択します。
[選択済みのトランザクション]ページで,監視するトランザクションを[利用可能なトランザクション]リストから選択します。
負荷の条件を設定します。
[負荷の条件の設定]ページで,異なる負荷シナリオを考慮するよう SLA を設定します。
しきい値を設定します。
[しきい値の設定]ページで,check_itinerary トランザクションに対する,許容できる平均トランザクション時間を定義します。
次の例のようにしきい値を設定します。
これで,次の平均トランザクション時間を許容すると設定しました。
- 軽い負荷: 5 秒以下
- 平均負荷: 10 秒以下
- 重い負荷: 15 秒以下
SLA を保存します。
SLA を保存してウィザードを閉じるには,続くページ上で[次へ],[完了],[閉じる]をクリックします。
Analysis はこの SLA 設定をサマリ・レポートに適用します。その後,レポートはすべての関連する SLA 情報を含んで更新されます。
[サマリ レポート]タブにはシナリオ実行に関する一般情報および統計に加え,関連するすべての SLA 情報が表示されます。たとえば,定義した SLA の観点から最もパフォーマンスの悪かったトランザクションは何か,設定した時間間隔でのトランザクションの具体的な処理内容,SLA ステータスなどです。サマリ・レポートは,[セッション エクスプローラ]から開きます。
全体的なシナリオの統計について
統計サマリ・セクションで,テストで最大 70 個の仮想ユーザが実行されたことがわかります。合計スループット,平均スループット,合計ヒット数,平均ヒット数などのほかの統計値も表示されています。
最もパフォーマンスの悪かったトランザクション
[5 Worst Transactions]の表に SLA が定義されている中で最もパフォーマンスの悪かったトランザクションが 5 個まで表示されます。
check_itinerary トランザクションの期間中,SLA しきい値がその期間の 66.4% を超えたことがわかります。実行全体で SLA しきい値を超えた平均の割合は 200.684% でした。
SLA しきい値を超えた時間間隔の確認
[Scenario Behavior Over Time]セクションには,異なる時間間隔に各トランザクションがどのように実行したかが表示されます。緑の四角はトランザクションが SLA しきい値内で実行された時間間隔,赤の四角はトランザクションが失敗した時間間隔,そして灰色は関連する SLA が定義されていない時間間隔を表します。
SLA を定義したトランザクションについて,ほとんどの間隔で check_itinerary がしきい値を超えたことがわかります。
全体的なトランザクションのパフォーマンスの確認
[Transaction Summary]には,各トランザクションの動作のサマリが表示されます。
また,check_itinerary トランザクションが 28 回失敗したこともわかります。
各トランザクションの時間を確認します。[90 Percent]カラムは,ある特定のトランザクション実行の 90% の時間を示します。テスト実行中に実行された check_itinerary トランザクションのうち,90% の時間が 65.754 秒であったことがわかります。これは,平均時間(32.826 秒)の倍です。つまり,大部分の check_itinerary トランザクションの応答時間は非常に長かったということです。
[SLA ステータス]カラムにどのように SLA のトランザクションに関連する全体のステータスが表示されているかに注意してください。check_itinerary が Fail になっています。
利用可能なグラフは[セッション エクスプローラ]ペインからアクセスできます。ここでは[平均トランザクション応答時間]グラフを表示,分析します。
[セッション エクスプローラ]の[グラフ]の下の,[平均トランザクション応答時間]を選択します。グラフ表示領域で[平均トランザクション応答時間]グラフが開きます。
注: [セッション エクスプローラ]ペインにグラフが表示されない場合,[グラフ]ノードを右クリックし,[新規グラフを開く]ダイアログ・ボックスで[トランザクション: 平均トランザクション応答時間]ノードを選択します。[グラフを開く]をクリックして[セッション エクスプローラ]ペインにグラフを追加します。
[凡例]ペインで,check_itinerary トランザクションをクリックします。グラフで check_itinerary トランザクションが強調表示されます。
グラフ上のポイントは,シナリオ実行時の特定の時間における平均トランザクション時間を示しています。グラフのポイント上にカーソルを置きます。黄色のボックス内にそのポイントの座標が表示されます。
結果の分析:
check_itinerary トランザクションの平均トランザクション時間が大きく変動している点に注目してください。平均時間はシナリオ開始から 2 分 56 秒後にピークに達し,75.067 秒となっています。
パフォーマンスの良いサーバでは,トランザクションの平均時間は比較的安定するでしょう。グラフの下部で,logon トランザクション,logoff トランザクション,book_flight トランザクション,および search_flight トランザクションの平均時間がより安定している点に注目してください。
前のセクションで,サーバのパフォーマンスが不安定であることを確認しました。そこで,70 個の実行中の仮想ユーザがシステムのパフォーマンスに与える影響を分析します。
仮想ユーザの動作を調査します。
[セッション エクスプローラ]の[グラフ]で,[実行中の仮想ユーザ]をクリックします。グラフ表示領域で[実行中の仮想ユーザ]グラフが開きます。
シナリオ実行の最初に,実行中の仮想ユーザが徐々に開始されたことがわかります。次に 3 分間 70 個の仮想ユーザが同時に実行され,その後徐々に仮想ユーザが実行を停止しています。
すべての仮想ユーザが同時に実行されたときのタイム・スライスだけが表示されるように,グラフにフィルタを適用します。
グラフにフィルタを適用すると,グラフ・データが絞り込まれ,指定された条件に合ったデータだけが表示されます。その場合,それら以外のデータはすべて非表示になります。
[グラフの設定]ダイアログ・ボックスで,[OK]をクリックします。
[実行中の仮想ユーザ]グラフには,シナリオ開始後 1 分 30 秒から 3 分 45 秒の間に実行された仮想ユーザのみが表示されます。ほかの仮想ユーザは除外されます。
注: フィルタをクリアするには,グラフを右クリックして[フィルタとグループ化のクリア]を選択するか,または Analysis ツールバーの[フィルタ/グループ化のクリア]ボタン をクリックします。
[実行中の仮想ユーザ]グラフと[平均トランザクション応答時間]グラフを相関させて,それらのデータを比較します。
2 つのグラフを結合して,一方のグラフのデータがもう一方のグラフのデータに与える影響を確認できます。これを「2 つのグラフを相関させる」といいます。
たとえば,[実行中の仮想ユーザ]グラフと[平均トランザクション応答時間]グラフを相関させて,多数の仮想ユーザがトランザクションの平均時間に与える影響を確認できます。
相関グラフを分析します。
このグラフで,仮想ユーザ数の増加に伴って,check_itinerary トランザクションの平均時間がわずかずつ増えていることがわかります。つまり,負荷が大きくなるのに伴い,平均時間も増えています。
仮想ユーザ数が 66 個になった時点で,突然平均時間が急増します。これをテストによる「サーバの限界超越」といいます。同時実行中の仮想ユーザ数が 66 個を超えると,明らかに時間が遅くなり始めました。
グラフにフィルタを適用し,2 つのグラフを相関させました。次にシナリオを分析するときに,同じフィルタと結合条件を適用した同じグラフを表示する可能性があります。結合およびフィルタの設定をテンプレートに保存して,別のAnalysis セッションに適用できます。
テンプレートを保存するには,次の手順を実行します。
次に新しい Analysis セッションを開いたときに保存したテンプレートを使用するには,次の手順を実行します。
サーバでの負荷の増加が,check_itinerary トランザクションの平均応答時間に悪影響を与えることを確認しました。
check_itinerary トランザクションをさらにドリルダウンして,パフォーマンスに悪影響を及ぼしているシステム・リソースを確認できます。
自動相関ツールにより,check_itinerary トランザクションの応答時間に影響を与えた可能性のあるデータを含むすべてのグラフを結合し,問題発生時に何が起こっていたかを特定できます。
グラフ・ツリーから,[平均トランザクション応答時間]グラフを選択します。
check_itinerary トランザクションの,特に経過時間が 1 分から 4 分の間を見ます。すぐに平均応答時間が増加し始め,ほぼ 3 分でピークに達するまで増加し続けました。
自動相関グラフを分析します。
グラフの下にある[凡例]ペインの[グラフ]カラムから,[Windows リソース: Pool Nonpaged Bytes と Private Bytes]測定値に下方スクロールします。
[測定値]カラムおよび[相関一致]カラムで,メモリに関連するこれらの測定値の check_itinerary トランザクションとの[相関一致]が 70% 以上であることがわかります。これは,指定した時間間隔で,これらの要素の動作と check_itinerary トランザクションの動作は密接に関連していたことを意味します。
check_itinerary トランザクションの応答時間がピークに達した瞬間に,システムのメモリ・リソースが不足したと判断できます。
Analysis セッションの開始時点でグラフ・ツリーに表示されるグラフに加えて,シナリオ実行に関するその他の情報を取得するためにさまざまなグラフを表示できます。
[グラフ]>[新規グラフの追加]をクリックします。
[新規グラフを開く]ダイアログ・ボックスが開き,データがあり表示可能なグラフのカテゴリが一覧表示されます。
仮想ユーザ: 仮想ユーザと仮想ユーザのステータスに関する情報が表示されます。
エラー: エラーの統計が表示されます。
トランザクション: トランザクションとトランザクションの応答時間に関するデータが表示されます。
Web リソース: ヒット数,スループット,および接続データが表示されます。
Web ページ診断: スクリプトに含まれる各監視対象 Web ページに関するデータが表示されます。
システム・リソース: システム・リソースの使用状況のデータが表示されます。
[閉じる]をクリックして,[新規グラフを開く]ダイアログ・ボックスを閉じます。
ほかにもいくつかのグラフを開いて,シナリオ実行についてさらに分析してください。
HTML レポートまたは Microsoft Word レポートを使用して,Analysis セッションの結果を発行できます。レポートは設計者のテンプレートを使用して作成され,提示されたグラフやデータの説明および凡例が含まれます。
HTML レポート
HTML レポートは,あらゆるブラウザで開いて表示できます。
HTML レポートを作成するには,次の手順を実行します。
[保存]をクリックします。
Analysis はレポートを作成して,そのレポートを Web ブラウザで表示します。HTML レポートのレイアウトとAnalysis セッションのレイアウトが非常に似ている点に注目してください。左のペインのリンクをクリックして,さまざまなグラフを表示できます。ページの下部に各グラフの説明が表示されます。
Microsoft Word レポート
Analysis セッションを Microsoft Word レポートを使用して表示できます。Word レポートにはシナリオ,測定値の説明などに関する一般情報を含むオプションがあるので,HTML レポートより包括的です。また,レポートを書式設定して,会社名,会社のロゴ,作成者情報を含めることができます。
ほかの Microsoft Word ファイルと同様,レポートは編集可能であるため,レポートを作成した後にコメントや結果を追加できます。
Microsoft Word レポートを作成するには,次の手順を実行します。
[レポート]>[新規レポート]をクリックします。
[新規レポート]ダイアログ・ボックスが開きます。
[ベースのテンプレート]で,[詳細レポート (シングル ラン)]を選択します。
レポートのタイトルを入力します。
作成者の名前,ジョブ・タイトル,会社名を入力します。
[フォーマット]タブ:
標準設定では,レポートにはタイトル・ページ,目次,グラフ詳細,グラフの説明,および測定値の説明が作成されます。スクリプトの詳細をレポートに追加するオプションを選択することもできます。その場合,ビジネス・プロセス・ステップのサムネイル・イメージが表示されます。
[会社のロゴを含める]を選択してファイルの場所を参照し,会社のロゴを含めることができます。ロゴ・ファイルは .bmp 形式のファイルです。
レポートに含めるシナリオ実行および Analysis セッションのセクションを選択します。
このチュートリアルでは,[コンテンツ項目]リストにエグゼクティブ・サマリを追加します。
[追加]ボタン をクリックして,[コンテンツ項目の追加]ウィンドウを開きます。グリッドで[エグゼクティブ サマリ]を選択し,[OK]をクリックします。エグゼクティブ・サマリ項目が[コンテンツ項目]ペイン内のリストに追加されます。
次のテキストを編集ボックスに入力します。
- 目標: このテスト・シナリオの目標は....
- 結論: 到達した結論は以下のとおりです。
レポートの項目の表示順序を変更します。
- [コンテンツ項目]ペインで,[ワークロードの特性]を選択します。[選択されたカラム]リストで[秒ごとの平均ヒット数]を選択します。
-項目が[合計トランザクション数]の下に表示されるまで下向き矢印をクリックします。レポートでは,[合計トランザクション数]項目の下に[秒ごとの平均ヒット数]項目が表示されます。
[生成]をクリックします。
データが集められ,レポートが Microsoft Word ファイルで作成されます。ファイルは Microsoft Word で開きます。
Analysis セッション中に生成されたグラフに加えて,レポートには目的と結論,およびレポートの作成時に含めるようにしたその他のセクションとグラフが含まれます。
この練習では,サービス・レベル・アグリーメントの定義,シナリオ実行の分析,およびレポートを使用した結果の発行についての基本を学びました。
また,過度の負荷が原因と思われるサーバのボトルネックを示すさまざまなグラフを調査してパフォーマンスの問題を特定する方法についても学びました。グラフを設定して相関データを表示することによりこれらのボトルネックの原因を特定する方法についても学びました。
|