次の方法で共有


テスト シナリオの概要

このトピックでは、テスト アプリケーションの概要について説明します。使用されるテスト手法の説明と、ロード テスト中にキャプチャされた主要業績評価指標 (KPI) の一覧を示します。

アプリケーションのテスト

同期要求応答アプリケーションを使用して、Hyper-V で実行されている BizTalk Server と物理ハードウェアで実行されている BizTalk Server のパフォーマンスを比較しました。 このアプリケーションは、待機時間が短いようチューニングされた BizTalk Server ソリューションのパフォーマンスを示すために使用されました。 クライアントが要求を送信し、応答メッセージを非常に短い間隔 (たとえば、3 秒 < ) 内で受け取るオンライン バンキングなどの特定のシナリオでは、待ち時間の短いメッセージングが重要です。

次の図は、使用されるアーキテクチャの概要を示しています。 Visual Studio Team System (VSTS) 2008 テスト ロード エージェントがカスタム テスト クラスを呼び出しました。このクラスは、WCF トランスポートを使用して BizTalk Server に対する負荷を生成しました。 このシナリオの BizTalk Server アプリケーションは、WCF-BasicHttp 要求/応答の受信場所を介して公開されました。 VSTS 2008 テスト ロード エージェントは、合計で送信されるメッセージの数、同時スレッドの数、送信された要求間のスリープ間隔を構成する機能など、柔軟性が高いため、テスト クライアントとして使用されました。

複数の VSTS 2008 テスト ロード エージェント コンピューターを同時に実行して、実際のロード パターンをシミュレートできます。 これらのテストでは、VSTS 2008 テスト ロード エージェント コンピューターは、BizUnit 3.0 も実行していた単一の VSTS 2008 テスト ロード エージェント コントローラー コンピューターによって駆動されていました。 その結果、物理コンピューターと仮想 BizTalk Server コンピューターの両方に一貫した負荷が送信されました。 VSTS 2008 Test Edition を使用してテスト用のシミュレートされた負荷を生成する方法の詳細については、 https://go.microsoft.com/fwlink/?LinkID=132311を参照してください。

アプリケーション アーキテクチャ アプリケーション アーキテクチャのテスト

  1. WCF-BasicHttp または WCF-Custom Request-Response 受信場所は、テスト ロード エージェント コンピューターから新しい CalculatorRequest を受信します。

  2. XML 逆アセンブラー コンポーネントは、CalculatorRequest xml ドキュメント内の Method 要素をプロモートします。 メッセージ エージェントは、メッセージ ボックス データベース (BizTalkMsgBoxDb) に受信メッセージを送信します。

  3. 受信要求は、LogicalPortsOrchestration の新しいインスタンスを開始します。 このオーケストレーションでは、ダイレクト バインド ポートを使用して、メソッド昇格プロパティ = "LogicalPortsOrchestration" を使用して CalculatorRequest メッセージを受信します。

  4. LogicalPortsOrchestration はループを使用してオペレーションを取得し、各項目に対して論理 Solicit-Response ポートを用いてダウンストリームのCalculator WCF Web サービスを呼び出します。 Calculator WCF Web サービスの要求メッセージは、ヘルパー コンポーネントを使用して作成され、MessageBox に発行されます。

  5. 要求メッセージは、WCF-BasicHttp 送信ポートによって消費されます。

  6. WCF-BasicHttp 送信ポートは、電卓 WCF Web サービスによって公開されているいずれかのメソッド (加算、減算、乗算、除算) を呼び出します。

  7. Calculator WCF Web サービスは、応答メッセージを返します。

  8. 応答メッセージは MessageBox に発行されます。

  9. 応答メッセージは、呼び出し元 LogicalPortsOrchestration に返されます。 オーケストレーションは、受信 CalculatorRequest xml ドキュメント内の各操作に対してこのパターンを繰り返します。

  10. LogicalPortsOrchestration は、CalculatorResponse メッセージを MessageBox に発行します。

  11. 応答メッセージは、Request-Response WCF-BasicHttp 受信場所によって取得されます。

  12. 応答メッセージがロード テスト エージェント コンピューターに返されます。

    ロード テスト中に使用されるオーケストレーションのスクリーンショットを次に示します。

図の目的上、次に示すオーケストレーションは、ロード テスト中に実際に使用されたオーケストレーションの簡略化されたバージョンです。 ロード テスト中に使用されるオーケストレーションには、複数のスコープ、エラー処理ロジック、追加のポートの種類が含まれていました。

テスト アプリケーション オーケストレーション テスト アプリケーション オーケストレーション

テスト手法

パフォーマンス テストには多くのタスクが含まれます。手動で実行すると、反復的で単調で、エラーが発生しやすくなります。 テストの効率を向上させ、テストの実行間の一貫性を提供するために、Visual Studio 2013 Team System (VSTS) Test Edition with BizUnit 3.0 を使用して、テスト プロセス中に必要なタスクを自動化しました。 VSTS 2008 テスト ロード エージェント コンピューターは、システムに対してメッセージの読み込みを生成するテスト クライアントとして使用され、一貫性を向上させるために各テスト実行で同じメッセージの種類が使用されました。 このプロセスに従って、すべてのテスト実行に一貫したデータ セットが提供されます。 BizUnit 3.0 の詳細については、「 https://go.microsoft.com/fwlink/?LinkID=85168」を参照してください。 Visual Studio 2013 Team System Test Edition の詳細については、「 https://go.microsoft.com/fwlink/?LinkID=141387」を参照してください。

次の手順が自動化されました。

  • BizTalk ホストを停止します。

  • テスト ディレクトリをクリーンアップします。

  • IIS を再起動します。

  • BizTalk Server メッセージ ボックス データベースをクリーンアップします。

  • SQL Server を再起動してください。

  • イベント ログをクリアします。

  • 実行ごとにテスト結果フォルダーを作成し、関連するパフォーマンス メトリックとログ ファイルを格納します。

  • BizTalk ホストを起動します。

  • パフォーマンス モニター カウンターを読み込みます。

  • 負荷が小さい BizTalk 環境をウォームアップします。

  • 代表的な実行を通じて送信します。

  • パフォーマンス ログを結果フォルダーに書き込みます。

  • アプリケーション ログを収集し、結果フォルダー内の .csv ファイルに書き込みます。

  • 収集されたパフォーマンス ログに対してログのパフォーマンス分析 (PAL) ツール、Relog、Log Parser ツールを実行して、統計、グラフ、レポートを生成します。 PAL、Relog、および Log Parser の詳細については、「 付録 D: パフォーマンスを測定するためのツール」を参照してください。

すべての追跡が無効になり、テスト中に BizTalk Server SQL Server エージェント ジョブが無効になりました。

このラボの結果が物理環境と Hyper-V 環境での BizTalk Server のパフォーマンスの比較を確実に提供できるように、パフォーマンス メトリックとログはテストの実行ごとに一元的な場所に収集されました。

テスト クライアントは、テストの実行ごとに一意の結果ディレクトリを作成するために使用されました。 このディレクトリには、テストに必要なすべてのパフォーマンス ログ、イベント ログ、および関連するデータが含まれていました。 このアプローチでは、以前のテスト実行の振り返り分析が必要な場合に必要な情報が提供されました。 各テストの最後に、生データは一貫した結果と主要業績評価指標 (KPI) のセットにコンパイルされました。 物理マシンと仮想化マシンに対して一貫した結果セットを収集することで、異なるテスト実行と異なる環境の間で必要な比較のポイントが提供されました。 収集されたデータには、次のものが含まれます。

  • 環境– テストが実行されていた環境を記録するには、物理ハードウェア上の BizTalk Server または Hyper-V 上の BizTalk Server を記録します。

  • テスト実行番号 – 各テストの実行を一意に識別するには

  • 試金石– テスト中に使用される BizTalk Server ソリューションのアーキテクチャを記録します。 (たとえば、論理ポートを使用したオーケストレーションとインライン送信を使用したオーケストレーション)

  • 日付– テストが実行された日時を記録するには

  • 開始時間 – 最初に行われた VSTS ロード テスト エージェントによって報告されたとおりです

  • 時間が止まった – 最後に完了した VSTS ロード テスト エージェントによって報告されたとおり

  • テスト期間 (分) – テストの期間を記録します。

  • 合計で送信されたメッセージ – テスト中にロード エージェント コンピューターから BizTalk Server コンピューターに送信されたメッセージの合計数を記録します。

  • 1 秒あたりに送信されるメッセージ – テスト中にロード エージェント コンピューターから BizTalk Server コンピューターに送信されたメッセージを 1 秒あたりに記録します。

  • クライアントの平均待機時間 – テスト ロード エージェント クライアントが要求を開始してから、ロード テスト中に BizTalk Server コンピューターから応答を受信した時間の平均時間を記録します。

  • Request-Response 期間の平均 (ミリ秒) – BizTalkServerIsolatedHost の BizTalk:Messaging Latency\Request-Response Latency (sec) Performance Monitor カウンターによって報告されたとおり

    複数の仮想化された BizTalk ホストが、ログから計算された平均のこれらのカウンターを実行していた場所が使用されました。

  • 1 秒あたりに完了したオーケストレーション –XLANG/s Orchestrations(BizTalkServerApplication)\Orchestrations completed/sec Performance Monitor カウンターによって報告されます。 このカウンターは、BizTalk Server ソリューションのスループットを適切に測定します。

  • 処理されたメッセージの% < 3 秒 – テスト中に 3 秒以内に処理されたメッセージの合計数を記録します。

    VSTS 2008 ロード テストは、すべてのテストで一貫した負荷を生成するために使用されました。 次のテスト実行設定とロード パターンは、各テストのロード プロファイルを調整するためにテスト中に変更されました。

  • テスト実行設定

    次のテスト実行設定は、実行されるテストに応じて変更されました。

    • 実行時間 – テストの実行時間を指定します。

      テスト実行設定 テスト実行設定

  • テスト パターンの設定

    次のテスト パターン設定は、実行されているテストに応じて変更されました。

    1. パターン– ロード テスト中にシミュレートされたユーザーの負荷を調整する方法を指定します。 負荷パターンは コンスタントステップ、または 目標 ベースです。 実行されたすべてのロード テストは、定数またはステップでした。

      このガイドの目的で実行されるすべてのテストでは、 定数 読み込みパターンまたは ステップ 読み込みパターンを使用しました。 定数読み込みパターンとステップ読み込みパターンでは、次の機能が提供されます。

      • 定数読み込みパターン – 読み込みパターンはテストの期間中は同じです。シミュレートされたユーザーの数は定義済みのレベルで開始され、変更されません。
        • ステップ読み込みパターン – ロード パターンはテストの実行中に増加します。シミュレートされたユーザーの数は、定義済みのレベルから開始され、テストの期間中、定義済みの間隔で定義済みの量だけインクリメントされます。
    2. 定数ユーザー数 (定数読み込みパターン) – Visual Studio ロード テスト プロジェクトの app.config ファイルで指定されたエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。

    3. 初期ユーザー数 (ステップ 読み込みパターン) – ステップ ロード パターン テストの開始時に、指定したエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。

    4. 最大ユーザー数 (ステップ 読み込みパターン) – ステップ ロード パターン テストの終了時に、指定したエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。

    5. ステップ期間 (ステップ読み込みパターン) – ロード テスト ステップの指定されたエンドポイント アドレスに対して、仮想ユーザーが負荷を生成している秒数。

    6. ステップ ユーザー数 (ステップ 読み込みパターン) – ステップ読み込みパターンを使用する場合、各ステップで増加する仮想ユーザーの数。

      テスト パターン設定 テスト パターンの設定

    Visual Studio 2013 でのロード テストの操作の詳細については、visual Studio 2013 Team System ドキュメントのhttps://go.microsoft.com/fwlink/?LinkId=141486でのロード テストの操作」を参照してください。

テスト中に測定された主要業績評価指標

次のパフォーマンス モニター カウンターは、すべてのテスト実行の主要業績評価指標 (KPI) としてキャプチャされました。

パフォーマンス モニター カウンターを使用したパフォーマンスの評価の詳細については、「 チェックリスト: Hyper-V でのパフォーマンスの測定」を参照してください。

BizTalk Server KPI

  • 1 秒あたりに処理されるドキュメント –BizTalk:Messaging/Documents processed/Sec カウンターによって測定されます。

  • レイテンシ は、VSTS 2008 ロード テスト コントローラーによって返された値に基づいて測定されます。

    SQL Server KPI

  • SQL Server プロセッサ使用率 –SQL\Processor(Total)\%Processor Time カウンターによって測定されます。 このカウンターは、SQL Server コンピューターでの SQL Server 処理の CPU 使用率を測定します。

  • Transact SQL コマンド処理のパフォーマンス –\SQL Server:SQL Statistics\Batch Requests/sec カウンターによって測定されます。 このカウンターは、1 秒あたりに受信 Transact-SQL コマンド バッチの数を測定します。 このカウンターは、SQL Server コンピューターのスループットを測定するために使用されます。

    ネットワーク KPI

  • BizTalk Server のネットワーク スループット – BizTalk Server コンピューターの \Network Interface(*)\Bytes Total/sec パフォーマンス モニター カウンターによって測定されます。

  • SQL Server のネットワーク スループット – VSTS 2008 ロード テスト コントローラーによって返される SQL ネットワーク インターフェイス\バイト合計/秒 (平均) によって測定されます。

    メモリ KPI

  • 使用可能なメモリ – さまざまなシナリオの \Memory\Available Mbytes カウンターによって測定されます。

物理インフラストラクチャの詳細

インストールされた各サーバーについて、次の設定が調整されました。

すべてのサーバーの場合:

  • ページング ファイルは、割り当てられた物理メモリの量の 1.5 倍に設定されました。 ページング ファイルは、初期サイズと最大値が MB 単位で同じであることを確認することで、固定サイズに設定されました。

  • [システムの詳細プロパティ] 画面から [最適なパフォーマンスを調整する] パフォーマンス オプションが選択されました。

  • システムのプロパティの [パフォーマンス オプション] セクションで、バックグラウンド サービスの最適なパフォーマンスを得るためのシステムが調整されていることを確認しました。

  • Windows Server 2008 SP2 は、各仮想マシンにゲスト オペレーティング システムとしてインストールされました。

  • 最新のセキュリティ更新プログラムをインストールするために、すべてのサーバーで Windows Update が正常に実行されました。

    SQL Server の場合:

  • SQL Server は、 https://go.microsoft.com/fwlink/?LinkId=141021で利用可能なインストール ガイドに従ってインストールされました。

  • 使用される SQL Server には、次の表に従って SAN LUN が構成されていました。 データベースとログ ファイルは、ディスク I/O の競合の可能性を減らすために、次のように LUN 間で分離されました。

    • Data_Sys ボリュームは、MessageBox データベースと TempDb データベースを除くすべてのデータベース ファイル (システムおよび BizTalk データベースを含む) を格納するために使用されました。

    • Log_Sys ボリュームは、MessageBox データベースと TempDb データベースを除くすべてのログ ファイル (システムおよび BizTalk Server データベースを含む) を格納するために使用されました。

    • Data_TempDb ボリュームは、TempDb データベース ファイルの格納に使用されました。

    • Logs_TempDb ボリュームは、TempDb ログ ファイルの格納に使用されました。

    • MessageBox データベース ファイルはData_BtsMsgBox ボリュームに格納され、ログ ファイルは Log_BtsMsgBox ボリュームに格納されました。

  • これに加えて、MSDTC ログ ファイル用に個別の LUN が提供されました。 高スループットの BizTalk システムでは、MSDTC ログ ファイル アクティビティがオペレーティング システムと同じ物理ドライブに残っている場合に I/O ボトルネックを引き起こすことが示されています。

    ボリューム名 ファイル LUN サイズ GB ホスト パーティション サイズ GB クラスター サイズ
    Data_Sys MASTER データ ファイルと MSDB データ ファイル 10 10 64 KB
    Logs_Sys MASTER ログ ファイルと MSDB ログ ファイル 10 10 64 KB
    Data_TempDb TempDB データ ファイル 50 50 64 KB
    Logs_TempDb TempDB ログ ファイル 50 50 64 KB
    Data_BtsMsgBox BizTalkMsgBoxDb データ ファイル 300 100 64 KB
    Logs_BtsMsgBox BizTalkMsgBoxDb ログ ファイル 100 100 64 KB
    Data_BAMPrimaryImport BAMPrimaryImport データファイル 10 10 64 KB
    Logs_BAMPrimaryImport BAMPrimaryImport ログ ファイル 10 10 64 KB
    Data_BizTalkDatabases その他の BizTalk データベース データ ファイル 20 20 64 KB
    Logs_BizTalkDatabases その他の BizTalk データベース ログ ファイル 20 20 64 KB
    なし MSDTC ログ ファイル 5 5 なし
  • BizTalk Server は、 https://go.microsoft.com/fwlink/?LinkId=128383で利用可能なインストール ガイドに従ってインストールされました。

  • BizTalk Server Best Practices Analyzer (BPA) ツールは、システムの構成後にプラットフォーム検証を実行するために使用されました。 BizTalk Server(https://www.microsoft.com/download/details.aspx?id=43382)。

仮想化の詳細

1 つの 50 GB 固定 VHD を使用して、Hyper-V 仮想マシンごとにオペレーティング システムをホストしました。

動的サイズの VHD の代わりに固定サイズの VHD が使用されたのは、固定サイズの VHD がホストされているドライブ上のファイルに対して VHD の最大ストレージを即座に割り当てるためです。 これにより、ホストされている物理ドライブで発生する VHD ファイルの断片化が軽減され、ディスク I/O パフォーマンスが向上します。

仮想マシンをセットアップするために、Windows Server 2008 SP2 64 ビット エディションのインストールが 1 つの VHD で実行されました。 すべての適切な更新プログラムがインストールされると、基本仮想マシンは、windows Server 2008 SP2 と共にインストールされた sysprep ユーティリティを使用して、%WINDIR%\system32\sysprep ディレクトリにイメージ化されました。

その後、このベース VHD がコピーされ、環境全体にデプロイされたすべての Hyper-V 仮想マシンの基礎として使用されました。 システムに SQL Server または BizTalk Server バイナリが展開される前に、システム セキュリティ識別子をリセットするために、基本 VHD イメージで Sysprep が実行されました。

BizTalk Server がインストールされ、サーバーに構成された後に Sysprep を実行するには、BizTalk Server で提供される Sysprep 応答ファイルとスクリプトを使用します。 これらのサンプル スクリプトは、Windows Server 2008 SP2 の 32 ビットバージョンと 64 ビット バージョンにのみインストールされた BizTalk Server で使用するように設計されています。 詳細については、BizTalk Server のオンライン ドキュメントを参照してください。

無人 Windows セットアップ リファレンスは、 https://go.microsoft.com/fwlink/?LinkId=142364にあります。

こちらもご覧ください

付録 C: BizTalk Server と SQL Server Hyper-V のサポート