クラウド サービスのパフォーマンスのテスト

Note

この記事は Azure Cloud Services (クラシック) に適用されます。これは新規のお客様向けには非推奨となっており、2024 年 8 月 31 日に廃止されます。 このテクノロジを使用して構築された既存のサービスは、引き続き Azure Cloud Services (延長サポート) を通じてサポートされます。 新しい開発では、Azure App ServiceAzure FunctionsAzure Container Apps など、特定の目的に合わせて設計された新しいサービスの種類を使用することをお勧めします。 利用可能なサービスの最新の一覧については、「Azure 製品のディレクトリ」を参照してください。

クラウド サービスのパフォーマンスは次の方法でテストすることができます。

前提条件

パフォーマンスのテスト方法を選択する

Azure Diagnostics を使用して収集するもの:

  • 要求や接続などの Web ページまたはサービスの統計情報。
  • ロールの再起動の頻度などのロールの統計情報。
  • ガベージ コレクターにかかる時間の割合や実行中のロールのメモリ総量など、メモリの使用状況に関する全体的な情報。

Visual Studio プロファイラーを使用する目的:

  • 特に時間がかかる機能を決定する。
  • 負荷の高いプログラムの各部分にかかる時間を測定する。
  • 詳細なパフォーマンス レポートをサービスの 2 つのバージョンで比較する。
  • 個別のメモリ割り当てよりも詳細なレベルでメモリ割り当てを分析する。
  • マルチスレッド コードのコンカレンシーの問題を分析する。

プロファイラーを使用すると、ローカルまたは Azure でクラウド サービスを実行する際にデータを収集できます。

プロファイル データをローカルで収集する目的:

  • 実際にシミュレートされた負荷を必要としない特定の worker ロールの実行など、クラウド サービスの一部のパフォーマンスをテストする。
  • 分離され、制御された条件下で、クラウド サービスのパフォーマンスをテストする。
  • クラウド サービスを Azure にデプロイする前にパフォーマンスをテストする。
  • 既存のデプロイに影響を及ぼすことなく、非公開でクラウド サービスのパフォーマンスをテストする。
  • Azure で実行するための料金を発生させることなく、サービスのパフォーマンスをテストする。

プロファイル データを Azure で収集する目的:

  • シミュレートされた、または実際の負荷でクラウド サービスのパフォーマンスをテストする。
  • このトピックの後半で説明するように、プロファイル データの収集のインストルメンテーション メソッドを使用する。
  • サービスの運用時と同じ環境で、サービスのパフォーマンスをテストする。

通常は、標準またはストレス条件でクラウド サービスをテストするための負荷をシミュレートします。

Azure でクラウド サービスをプロファイルする

Visual Studio からクラウド サービスを発行すると、サービスをプロファイルし、必要な情報を提供するプロファイル設定を指定できます。 プロファイル セッションは、ロールの各インスタンスで開始されます。 Visual Studio からサービスを発行する方法の詳細については、「 Visual Studio から Azure クラウド サービスへの発行」を参照してください。

Visual Studio でのパフォーマンスのプロファイルの詳細については、「パフォーマンス プロファイルの初心者向けガイド」および「プロファイル ツールを使用したアプリケーション パフォーマンスの分析」を参照してください。

Note

クラウド サービスを発行するときに、IntelliTrace またはプロファイルを有効にすることができます。 両方を有効にすることはできません。

プロファイラーの収集メソッド

パフォーマンスの問題に基づいて、プロファイルのためのさまざまな収集メソッドを使用できます。

  • CPU サンプリング - このメソッドでは、CPU 使用率の問題の初期分析に役立つアプリケーションの統計情報を収集します。 CPU サンプリングは、ほとんどのパフォーマンス調査を開始するために推奨されるメソッドです。 CPU のサンプリング データを収集する際に、プロファイルするアプリケーションにはあまり影響を与えません。
  • インストルメンテーション - このメソッドでは、対象を絞った分析および入出力のパフォーマンスの問題の分析に役立つ詳細なタイミング データを収集します。 インストルメンテーション メソッドはプロファイル実行中にモジュールで行われた関数の入力、終了、および関数呼び出しをすべて記録します。 このメソッドは、コードのセクションに関する詳細なタイミング情報を収集したり、入出力操作がアプリケーションのパフォーマンスに与える影響を理解したりするのに便利です。 このメソッドは、32 ビットのオペレーティング システムを実行するコンピューターでは無効です。 このオプションは、クラウド サービスをコンピューティング エミュレーターでローカルにではなく、Azure で実行する場合にのみ有効です。
  • .NET メモリ割り当て - このメソッドは、サンプリング プロファイル メソッドを使用して .NET Framework メモリ割り当てデータを収集します。 収集されたデータには割り当てられたオブジェクトの数とサイズが含まれています。
  • コンカレンシー - このメソッドは、リソース競合データと、マルチスレッドおよびマルチプロセス アプリケーションの分析に役立つプロセスおよびスレッドの実行データを収集します。 コンカレンシー メソッドは、アプリケーション リソースへのアクセスのロックが解放されるのをスレッドが待機している場合などに、コードの実行をブロックする各イベントのデータを収集します。 このメソッドはマルチスレッド アプリケーションを分析する場合に便利です。
  • 階層の相互作用のプロファイルを有効にすることもできます。これは、1 つまたは複数のデータベースと通信する多層アプリケーションの関数の ADO.NET 同期呼び出しの実行時間に関する追加情報を提供します。 どのプロファイル メソッドでも階層の相互作用データを収集できます。 階層の相互作用のプロファイルの詳細については、「階層の相互作用ビュー」を参照してください。

プロファイル設定を構成する

次の図は、[Azure アプリケーションの公開] ダイアログ ボックスからプロファイル設定を構成する方法を示します。

Configure Profiling Settings

Note

[プロファイルを有効にする] チェックボックスを有効にするには、クラウド サービスの発行に使用しているローカル コンピューターにプロファイラーがインストールされている必要があります。 既定では、プロファイラーは Visual Studio のインストール時にインストールされます。

プロファイル設定を構成するには

  1. ソリューション エクスプローラーで Azure プロジェクトのショートカット メニューを開き、 [発行]を選択します。 クラウド サービスを発行する方法の詳細については、「 Azure Tools を使用したクラウド サービスの発行」を参照してください。

  2. [Azure アプリケーションの公開] ダイアログ ボックスで、[詳細設定] タブを選択します。

  3. プロファイルを有効にするには、 [プロファイルを有効にする] チェックボックスをオンにします。

  4. プロファイル設定を構成するには、 [設定] ハイパーリンクをクリックします。 [プロファイル設定] ダイアログ ボックスが表示されます。

  5. [使用するプロファイル方法を指定してください] オプションで、必要なプロファイルの種類を選択します。

  6. 階層の相互作用プロファイル データを収集するには、 [階層の相互作用のプロファイルを有効にする] チェックボックスをオンにします。

  7. 設定を保存するには、 [OK] をクリックします。

    このアプリケーションの発行時に、これらの設定を使用して各ロールのプロファイル セッションが作成されます。

プロファイル レポートの表示

プロファイル セッションは、クラウド サービスのロールの各インスタンスに対して作成されます。 Visual Studio から各セッションのプロファイル レポートを表示するには、[サーバー エクスプローラー] ウィンドウを表示し、Azure の計算ノードを選択することで、ロールのインスタンスを選択できます。 これで、次の図に示すように、プロファイル レポートを表示できます。

View Profiling Report from Azure

プロファイル レポートを表示するには

  1. Visual Studio でサーバー エクスプローラーを表示するには、メニュー バーの [表示] を選択して、[サーバー エクスプローラー] を選択します。

  2. Azure の計算ノードを選択し、Visual Studio から発行したときにプロファイルに選択したクラウド サービスの Azure デプロイ ノードを選択します。

  3. インスタンスのプロファイル レポートを表示するには、サービスでロールを選択し、特定のインスタンスのショートカット メニューを開いて [プロファイル レポートの表示]を選択します。

    レポートの .vsp ファイルが Azure からダウンロードされ、ダウンロードの状態が Azure のアクティビティ ログに表示されます。 ダウンロードが完了すると、<Role name><Instance Number><identifier>.vsp という名前のプロファイル レポートが Visual Studio のエディターのタブに表示されます。 レポートの概要データが表示されます。

  4. [現在のビュー] の一覧にレポートの異なるビューを表示するには、表示するビューの種類を選択します。 詳細については、「 プロファイル ツールのレポート ビュー」を参照してください。

クラウド サービスのデバッグ

Visual Studio から Azure クラウド サービスへの発行