ロード テストのトラブルシューティング

更新 : 2007 年 11 月

ここでは、Visual Studio Team System Test Edition のロード テストの操作時に発生する以下の一般的な問題について説明します。

SQL トレースを使用できない

テストの実行中にエラーが発生しました。(コンピュータ xyz が) 結果リポジトリを読み取れませんでした: オブジェクト名 'LoadTestRun' が無効です

LoadTestCounterNotFoundException エラー

LoadTestResultsCollectorSlowException

LoadTestErrorLimitExceededException エラー

選択条件に一致するエージェント コンピュータはありません

ロード テストの結果リポジトリにアクセスできない

意図した負荷を生成できない

マルチコア コンピュータで負荷を生成するときの制限事項

SQL トレースを使用できない

ロード テストをローカルで実行する場合に SQL トレースを有効にしていると、次のメッセージが表示されることがあります。

テストの実行中にエラーが発生しました。SQL トレースを開始できませんでした: 'SP_TRACE_CREATE' の実行権限がありません。

Windows Vista オペレーティング システムを実行しているコンピュータのローカルで実行しているロード テストで SQL トレースを使用するには、トレースする SQL Server のインスタンスの sysadmin ロールのメンバである必要があります。この問題を解消するには、現在のユーザーを sysadmin ロールに追加するよう SQL Server の管理者に依頼する必要があります。

テストの実行中にエラーが発生しました。(コンピュータ xyz が) 結果リポジトリを読み取れませんでした: オブジェクト名 'LoadTestRun' が無効です

このエラーは、ロード テストのデータベース スキーマが作成されなかったことを示します。データベースは、クエリ アナライザを使用して、<Visual Studio インストール フォルダ>\Common7\IDE\ にある LoadTestResultsRepository.Sql ファイルを実行することで作成できます。

SQL Express を使用している場合は、前述のディレクトリでコマンド プロンプトを使用し、"sqlcmd -S .\SQLEXPRESS -i loadtestresultsrepository.sql" を実行することでも作成できます。

ms404661.alert_caution(ja-jp,VS.90).gif注意 :

パラメータでは、大文字と小文字が区別されます。S は大文字、i は小文字で入力してください。

詳細については、「方法 : SQL を使用して結果リポジトリを作成する」を参照してください。

LoadTestCounterNotFoundException エラー

このエラーは、ロード テストに含まれているカウンタ セットのいずれかに含まれているパフォーマンス カウンタが、それを含んでいるパフォーマンス カウンタ カテゴリで見つからなかった場合に発生します。該当するカウンタがカウンタ セットに追加したものである場合、追加したパフォーマンス カウンタの名前のスペルが間違っている可能性があります。また、該当するパフォーマンス カウンタを定義しているソフトウェア コンポーネントの新しいリビジョンで、そのパフォーマンス カウンタが削除された場合など、該当するパフォーマンス カウンタがカテゴリに存在していない可能性もあります。このエラーを解消することを目的として、必要なデータを失うことなく、そのようなカウンタをカウンタ セットから削除することが可能です。

LoadTestResultsCollectorSlowException エラー

このエラーは、コントローラがロード テストに指定されたサンプル速度ですべてのコンピュータからパフォーマンス カウンタの結果を収集することができなかったことを示します。このエラーは、ロード テストのカウンタ セットの割り当ての指定に基づいて、多数のパフォーマンス カウンタを多数のコンピュータから収集する場合に発生することがあります。また、Load Agent の実行コンピュータがコントローラと同じ場合にも発生することがあります。このエラーは、ロード テストのサンプル速度を大きくすることで解消できる場合があります。

LoadTestLimitExceededException エラー

このエラーは、同じ種類のエラーが 1,000 以上起こると発生します。通常、これはロード テストで実行されているテストに問題があることを示します。たとえば、Web テストが、見つからない URL に要求を発行している場合は、このエラーを解消するために Web テストを修正する必要があります。

選択条件に一致するエージェント コンピュータがない

リモート テスト マシン群でテストを実行しているときに、次のようなメッセージが表示されることがあります。

選択条件に一致するエージェント コンピュータはありません

リモート テスト マシン群でテストを実行している場合、コントローラに接続されているエージェント コンピュータの選択条件を指定できます。たとえば、特定のオペレーティング システムを使用しているエージェントのみを使用してテストを実行するよう指定できます。条件の指定がない場合、コントローラに接続されているすべてのエージェントがテストの実行に使用されます。選択条件に一致するエージェントがないと、テストは実行されません。

選択条件に一致するエージェント コンピュータがない問題を解消するには、次の手順に従います。

  1. [テスト] メニューの [テストの実行構成の編集] をポイントし、現在アクティブな構成をクリックします。

    ms404661.alert_note(ja-jp,VS.90).gifメモ :

    現在アクティブな構成を見つけるには、[テスト] メニューの [アクティブなテストの実行構成の選択] をポイントしますアクティブな構成には、名前の横にチェック マークが表示されます。

  2. 表示されるボックスで [コントローラおよびエージェント] をクリックします。

  3. 名前と値のグリッドで、テストの実行に使用するエージェントを除外している条件を削除します。

  4. 完了したら、[適用] をクリックし、[OK] をクリックします。

ロード テストの結果リポジトリにアクセスできない

テストを実行しているときに、次のようなメッセージが表示されることがあります。

ロード テストの結果レポジトリにアクセスできませんでした

このエラーの可能性の 1 つとして、SQLCMD コマンド ライン ユーティリティを使用してロード テストの結果リポジトリをセットアップするときに、パラメータ名の大文字と小文字の指定が正しく指定されなかったことが考えられます。次のコードは、ContosoServer1 という名前のサーバーでロード テストの結果リポジトリをセットアップするコマンドの例です。

SQLCMD -S ContosoServer1 -U <user name> -P <password> -i loadtestresultsrepository.sql

ms404661.alert_caution(ja-jp,VS.90).gif注意 :

パラメータでは、大文字と小文字が区別されます。S、U、および P は大文字、i は小文字で入力してください。

詳細については、「方法 : SQL を使用して結果リポジトリを作成する」を参照してください。

意図した負荷を生成できない

ロード テストの実行でよくある問題の 1 つは、意図した負荷を生成できないことです。次の表は、この問題に対して考えられる原因の一部の一覧です。

最大負荷が待ち時間または仮想ユーザー数によって制限されている

待ち時間がオンになっていると、各仮想ユーザーが要求を送信する間隔が制限されます。たとえば、要求につき待ち時間が 5 秒の場合、仮想ユーザーあたりの 1 秒間の要求数は 0.2 になります。次のいずれかの変更を行います。優先順に表示されています。

  1. 仮想ユーザー数を増やして、現実的な負荷生成にします。一般的に、仮想ユーザーを増やすと、必要なメモリ容量も増えます。

  2. 待ち時間を短縮します。

  3. 待ち時間をオフにして、負荷生成を最大化します。

    ms404661.alert_caution(ja-jp,VS.90).gif注意 :
    待ち時間をオフにすると、テスト エンジンに大きな影響が及びます。待ち時間をオフにする場合は、仮想ユーザー数を少なくしてください。

Web テストのプロキシのプロパティが "default" に設定されている

Web テストのプロキシの設定として "default" を使用すると、自動プロキシ サーバー検出が有効になるので便利です。一方、プロキシの設定として "default" を使用すると、ロード テストにパフォーマンスの問題が発生し、最大スループットが大幅に低下します。ロード テストを実行する場合にはプロキシ サーバーを使用しないことをお勧めします。プロキシ サーバーが必要な場合は、"default" ではなく、プロキシ サーバー名を指定してください。

アプリケーションのボトルネック

ロード テストのツールは、アプリケーションのボトルネックを見つけることを目的としています。データベースまたは CPU のボトルネックが原因で応答時間が長くなるページがあると、各仮想ユーザーが発行できる 1 秒あたりの要求数が制限されます。小さめの負荷から始め、負荷を少しずつ上げながら、応答時間が許容できる範囲内に留まっているかどうかを確認してください。応答時間の目標プロパティを使用すると、予期される最大応答時間を要求ごとに設定できます。

Web サーバーの CPU、メモリ、またはネットワークが限界を超えている

Web サーバーの CPU、メモリ、またはネットワークが限界を超えている場合、意図したような負荷を生成できないことがあります。これは、サーバーの負荷の限界を示している可能性があります。Web サーバーの CPU、メモリ、またはネットワークを強化してください。

負荷を生成しているコンピュータの CPU、メモリ、またはネットワークが限界を超えている

必要な負荷を生成するには、さらに処理能力の高いコンピュータ、またはより多くのエージェント コンピュータが必要である可能性があります。

データベース サーバーの CPU、メモリ、またはネットワーク (該当する場合) が限界を超えている

データベース サーバーの CPU、メモリ、またはネットワークが限界を超えている場合、意図したような負荷を生成できないことがあります。これは、データベース サーバーの負荷の限界を示している可能性があります。データベース サーバーの CPU、メモリ、またはネットワークを強化してください。

マルチコア コンピュータで負荷を生成するときの制限事項

ロード テストをマルチコア コンピュータで実行する場合、負荷の生成に次の制限事項があります。

  • コンピュータで Visual Studio Team System Test Edition または Visual Studio Team System が動作している場合、負荷を生成できるのは 1 つのコアのみに制限されます。

  • コンピュータで Visual Studio Team System Test Load Agent が動作している場合、負荷の生成は制限されず、すべてのコアとプロセッサで実行されます。

参照

処理手順

Test Edition でのトラブルシューティング

Web テストのトラブルシューティング

コントローラ、エージェント、およびリモート テスト マシン群のトラブルシューティング

方法 : SQL を使用して結果リポジトリを作成する

概念

大規模なロード テストに関する考慮事項

コントローラ、エージェント、およびリモート テスト マシン群

ロード テスト エラーの分析

しきい値規則違反の分析

その他の技術情報

ロード テストの結果リポジトリ