テスト シナリオの概要
このトピックでは、テスト アプリケーションの概要について説明します。使用されるテスト手法の説明と、ロード テスト中にキャプチャされた主要業績評価指標 (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。
アプリケーション アーキテクチャのテスト
WCF-BasicHttp または WCF-Custom Request-Response 受信場所は、テスト ロード エージェント コンピューターから新しい CalculatorRequest を受信します。
XML 逆アセンブラー コンポーネントは、CalculatorRequest xml ドキュメント内の Method 要素を昇格します。 メッセージ エージェントは、受信メッセージを MessageBox データベース (BizTalkMsgBoxDb) に送信します。
受信要求は、LogicalPortsOrchestration の新しいインスタンスを開始します。 このオーケストレーションでは、ダイレクト バインド ポートを使用して、Method promoted プロパティ = "LogicalPortsOrchestration" を使用して CalculatorRequest メッセージを受信します。
LogicalPortsOrchestration はループを使用して操作を取得し、各項目に対して論理 Solicit-Response ポートを使用してダウンストリーム電卓 WCF Web サービスを呼び出します。 Calculator WCF Web サービスの要求メッセージは、ヘルパー コンポーネントを使用して作成され、MessageBox に発行されます。
要求メッセージは、WCF-BasicHttp 送信ポートによって使用されます。
WCF-BasicHttp 送信ポートは、Calculator WCF Web サービスによって公開されているメソッド (Add、Subtract、Multiply、Divide) のいずれかを呼び出します。
Calculator WCF Web サービスは応答メッセージを返します。
応答メッセージは MessageBox に発行されます。
応答メッセージは、呼び出し元 LogicalPortsOrchestration に返されます。 オーケストレーションは、受信 CalculatorRequest xml ドキュメント内の各操作に対してこのパターンを繰り返します。
LogicalPortsOrchestration は、CalculatorResponse メッセージを MessageBox に発行します。
応答メッセージは、Request-Response WCF-BasicHttp 受信場所によって取得されます。
応答メッセージがロード テスト エージェント コンピューターに返されます。
ロード テスト中に使用されるオーケストレーションのスクリーンショットを次に示します。
Note
図の目的上、次に示すオーケストレーションは、ロード テスト中に実際に使用されたオーケストレーションの簡略化されたバージョンです。 ロード テスト中に使用されるオーケストレーションには、複数のスコープ、エラー処理ロジック、追加のポートの種類が含まれていました。
テストするアプリケーション オーケストレーションのテスト
テスト方法
パフォーマンス テストには多くのタスクが含まれます。手動で実行すると、反復的で単調で、エラーが発生しやすくなります。 テストの効率を向上させ、テストの実行間の一貫性を提供するために、BizUnit 3.0 Visual Studio 2013 Team System (VSTS) Test Edition を使用して、テスト プロセス中に必要なタスクを自動化しました。 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: パフォーマンスを測定するためのツール」を参照してください。
Note
すべての追跡が無効になり、テスト中に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 Duration Average (ms) –BizTalkServerIsolatedHost の BizTalk:Messaging Latency\Request-Response Latency (sec) パフォーマンス モニター カウンターによって報告されたとおり
Note
複数の仮想化された BizTalk ホストが、ログから計算されたこれらのカウンターの平均を実行していた場合に使用されました。
1 秒あたりに完了したオーケストレーション –XLANG/s Orchestrations(BizTalkServerApplication)\Orchestrations completed/sec パフォーマンス モニター カウンターによって報告されます。 このカウンターは、BizTalk Server ソリューションのスループットを適切に測定します。
処理された < メッセージの割合 3 秒 – テスト中に 3 秒以内に処理されたメッセージの合計数を記録します。
VSTS 2008 ロード テストは、すべてのテスト全体で一貫した負荷を生成するために使用されました。 次のテスト実行設定とロード パターンは、各テストのロード プロファイルを調整するためにテスト中に変更されました。
テスト実行設定
次のテスト実行設定は、実行されるテストに応じて変更されました。
実行時間 – テストの実行時間を指定します。
テスト実行の設定
テスト パターン設定
次のテスト パターン設定は、実行されているテストに応じて変更されました。
パターン– ロード テスト中にシミュレートされたユーザー負荷を調整する方法を指定します。 読み込みパターンは、 定数、 ステップ、または 目標 ベースです。 実行されたすべてのロード テストは、定数またはステップでした。
Note
このガイドの目的で実行されるすべてのテストでは、 定数 読み込みパターンまたは ステップ 読み込みパターンを使用しました。 一定の読み込みパターンとステップ読み込みパターンでは、次の機能が提供されます。
- 定数読み込みパターン – ロード パターンはテストの期間中は同じですが、シミュレートされたユーザーの数は定義済みのレベルで開始され、変更されません。
- ステップ読み込みパターン – ロード パターンは、テストの実行中に増加します。シミュレートされたユーザーの数は、定義済みのレベルで開始され、テストの期間中、定義済みの間隔で定義済みの量だけ増加します。
- 定数読み込みパターン – ロード パターンはテストの期間中は同じですが、シミュレートされたユーザーの数は定義済みのレベルで開始され、変更されません。
定数ユーザー数 (定数読み込みパターン) – Visual Studio ロード テスト プロジェクトの app.config ファイルで指定されたエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。
初期ユーザー数 (ステップ 読み込みパターン) – ステップ ロード パターン テストの開始時に、指定したエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。
最大ユーザー数 (ステップ 読み込みパターン) – ステップ ロード パターン テストの最後に、指定したエンドポイント アドレスに対して負荷を生成している仮想ユーザーの数。 この値は、ロード テストに使用されるロード パターン設定で指定されます。
ステップ期間 (ステップ 読み込みパターン) – ロード テスト ステップの指定したエンドポイント アドレスに対して仮想ユーザーが負荷を生成している秒数。
ステップ ユーザー数 (ステップ 読み込みパターン) – ステップ読み込みパターンを使用するときに、各ステップで増加する仮想ユーザーの数。
テスト パターンの設定
Visual Studio 2013でのロード テストの操作の詳細については、Visual Studio 2013 Team System ドキュメントの「ロード テストの操作」のトピックを参照してくださいhttps://go.microsoft.com/fwlink/?LinkId=141486。
テスト中に測定された主要業績評価指標
次のパフォーマンス モニター カウンターは、すべてのテスト実行の主要業績評価指標 (KPI) としてキャプチャされました。
Note
パフォーマンス モニター カウンターを使用したパフォーマンスの評価の詳細については、「 チェックリスト: Hyper-V でのパフォーマンスの測定」を参照してください。
BIZTALK SERVER KPI
1 秒あたりに処理されるドキュメント –BizTalk:Messaging/Documents processed/Sec カウンターによって測定されます。
遅延–VSTS 2008 Load Test Controllerによって返されるとおりに測定されます。
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 Load Test Controllerによって返される SQL ネットワーク インターフェイス\バイト合計/秒 (Avg) によって測定されます。
メモリ KPI
使用可能なメモリ – さまざまなシナリオで \Memory\Available Mbytes カウンターによって測定されます。
物理インフラストラクチャの詳細
インストールされた各サーバーについて、次の設定が調整されました。
すべてのサーバーの場合:
ページング ファイルは、割り当てられた物理メモリの量の 1.5 倍に設定されました。 ページング ファイルは、初期サイズと最大値が MB 単位で同じであることを確認することで、固定サイズに設定されました。
[システムのプロパティ] 画面で [最適なパフォーマンスを得るための調整] パフォーマンス オプションが選択されました。
システムのプロパティの [パフォーマンス オプション] セクションで、バックグラウンド サービスの最適なパフォーマンスを得るためのシステムが調整されていることを確認しました。
Windows Server 2008 SP2 は、各仮想マシンにゲスト オペレーティング システムとしてインストールされました。
すべてのサーバーでWindows Updateが正常に実行され、最新のセキュリティ更新プログラムがインストールされました。
SQL Server の場合:
で入手できるhttps://go.microsoft.com/fwlink/?LinkId=141021インストール ガイドに従って、SQL Serverがインストールされました。
使用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 ベスト プラクティス アナライザー (BPA) ツールは、システムの構成後にプラットフォーム検証を実行するために使用されました。 BizTalk Server(https://www.microsoft.com/download/details.aspx?id=43382)。
仮想化の詳細
Hyper-V 仮想マシンごとにオペレーティング システムをホストするために、50 GB の固定 VHD が 1 つ使用されました。
VHD がホストされているドライブ上のファイルに VHD の最大記憶域をすぐに割り当てるので、VHD のサイズが動的に変更される代わりに VHD が使用されていました。 これにより、ホストされている物理ドライブで発生する VHD ファイルの断片化が軽減され、ディスク I/O パフォーマンスが向上します。
仮想マシンをセットアップするために、1 つの VHD で Windows Server 2008 SP2 64 ビット エディションのインストールが実行されました。 すべての適切な更新プログラムがインストールされると、基本仮想マシンは、Windows Server 2008 SP2 と共にインストールされた sysprep ユーティリティを使用して 、%WINDIR%\system32\sysprep ディレクトリにイメージ化されました。
その後、このベース VHD がコピーされ、環境全体にデプロイされたすべての Hyper-V 仮想マシンの基礎として使用されました。 システムにSQL ServerまたはBizTalk Serverバイナリがデプロイされる前に、システム セキュリティ識別子をリセットするために、基本 VHD イメージで Sysprep が実行されました。
Note
BizTalk Serverがインストールされ、サーバーに構成された後に Sysprep を実行するには、sysprep 応答ファイルと、BizTalk Serverで提供されるスクリプトを使用します。 これらのサンプル スクリプトは、32 ビットおよび 64 ビット バージョンの Windows Server 2008 SP2 にのみインストールBizTalk Serverで使用するように設計されています。 詳細については、BizTalk Serverオンライン ドキュメントを参照してください。
無人 Windows セットアップ リファレンスは、 にあります https://go.microsoft.com/fwlink/?LinkId=142364。