次の方法で共有


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

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

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

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

LoadTestCounterNotFoundException エラー

LoadTestResultsCollectorSlowException

LoadTestErrorLimitExceededException エラー

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

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

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

要件

  • Visual Studio Ultimate

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" を実行することでも作成できます。

Caution メモ注意

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

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

LoadTestCounterNotFoundException エラー

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

LoadTestResultsCollectorSlowException エラー

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

LoadTestLimitExceededException エラー

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

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

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

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

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

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

Caution メモ注意

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

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

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

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

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

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

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

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

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

Caution メモ注意
待ち時間をオフにすると、テスト エンジンに大きな影響が及びます。待ち時間をオフにする場合は、仮想ユーザー数を少なくしてください。

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

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

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

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

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

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

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

目的の負荷を生成するには、場合によっては、さらに処理能力の高いコンピューター、またはより多くのテスト エージェント コンピューターが必要になることがあります。

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

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

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

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

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

  • コンピューターが実行中の Visual Studio Test Agent の場合、負荷の生成は制限されず; これは、すべてのコアおよびプロセッサで実行されます。

参照

処理手順

ロード テストにおけるネットワーク エミュレーションのトラブルシューティング

テスト ツールのトラブルシューティング (Visual Studio ALM)

Web パフォーマンス テストのトラブルシューティング

方法: SQL を使用してロード テストの結果リポジトリを作成する

概念

ロード テストにおけるテスト コントローラーとテスト エージェントのトラブルシューティングの方法

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

ロード テスト アナライザーのテーブル ビューでのロード テスト結果とエラーの分析

ロード テスト アナライザーを使用したロード テストのしきい値規則違反の分析

その他の技術情報

ロード テストと Web パフォーマンス テストのトラブルシューティング

テスト コントローラーおよびテスト エージェントを使用した複数のテスト コンピューターへのロード テストの実行の分散

Considerations for Load Testing