共用方式為


測試案例概觀

本主題提供測試應用程式的概觀;所使用測試方法的描述,並列出負載測試期間) 擷取的關鍵效能指標 (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 元素。 訊息代理程式會將傳入的訊息提交至 MessageBox 資料庫, (BizTalkMsgBoxDb) 。

  3. 輸入要求會啟動 LogicalPortsOrchestration 的新實例。 此協調流程會使用直接系結埠來接收 CalculatorRequest 訊息,其方法升級屬性 = 「LogicalPortsOrchestration」。

  4. LogicalPortsOrchestration 會使用迴圈來擷取作業,並針對每個專案使用邏輯 Solicit-Response 埠叫用下游計算機 WCF Web 服務。 計算機 WCF Web 服務的要求訊息是使用協助程式元件建立,併發布至 MessageBox。

  5. WCF-BasicHttp 傳送埠會取用要求訊息。

  6. WCF-BasicHttp 傳送埠會叫用計算機 WCF Web 服務所公開的其中一個方法, (Add、Subtract、Multiply、Divide) 。

  7. 計算機 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 與 BizUnit 3.0 搭配 BizUnit 3.0 用來自動化測試程式期間所需的工作。 VSTS 2008 測試負載代理程式電腦用來作為測試用戶端,以針對系統產生訊息負載,並在每個測試回合上使用相同的訊息類型來改善一致性。 遵循此程式,會為每個測試回合提供一組一致的資料。 如需 BizUnit 3.0 的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkID=85168 。 如需 team System Test Edition Visual Studio 2013的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkID=141387

下列步驟已自動化:

  • 停止 BizTalk 主機。

  • 清除測試目錄。

  • 重新啟動 IIS。

  • 清除BizTalk Server Messagebox 資料庫。

  • 重新啟動 SQL Server。

  • 清除事件記錄檔。

  • 為每個回合建立測試結果資料夾,以儲存相關聯的效能計量和記錄檔。

  • 啟動 BizTalk 主機。

  • 載入效能監視器計數器。

  • 使用小型負載準備 BizTalk 環境。

  • 透過代表性執行傳送。

  • 將效能記錄寫入結果資料夾。

  • 收集應用程式記錄並寫入結果資料夾中的 .csv 檔案。

  • 針對收集的效能記錄檔執行記錄分析 (PAL) 工具、重新記錄和記錄剖析器工具,以產生統計資料、圖表和報告。 如需 PAL、Relog 和記錄剖析器的詳細資訊,請參閱 附錄 D:測量效能的工具

注意

所有追蹤都已停用,且測試期間已停用BizTalk Server SQL Server Agent作業。

為了確保此實驗室的結果能夠在實體和 Hyper-V 環境中提供BizTalk Server效能的比較,在每個測試回合的集中式位置收集效能計量和記錄。

測試用戶端是用來為每個測試回合建立唯一的結果目錄。 此目錄包含測試所需的所有效能記錄、事件記錄檔和相關聯的資料。 此方法提供在需要先前測試回合的回顧分析時所需的資訊。 在每個測試結束時,原始資料會編譯成一組一致的結果,並將關鍵效能指標編譯 (KPI) 。 收集實體和虛擬化機器的一致結果集,可提供不同測試回合與不同環境之間所需的比較點。 收集的資料包括:

  • 環境–若要記錄要針對哪個環境執行測試,請在實體硬體上BizTalk Server,或在 Hyper-V 上BizTalk Server。

  • 測試回合號碼 – 若要唯一識別每個測試回合

  • 測試案例 –記錄測試期間所用BizTalk Server解決方案的架構。 (例如,使用內嵌傳送) 與邏輯埠的協調流程與協調流程

  • 日期– 記錄測試執行的日期和時間

  • 開始時間 – 如第一個起始的 VSTS 負載測試代理程式所報告

  • 已停止時間 – 如最後一個 VSTS 負載測試代理程式所報告,以完成

  • 以分鐘為單位的測試持續時間 – 若要記錄測試的持續時間。

  • 總計傳送的訊息 –若要記錄在測試期間從載入代理程式電腦傳送至BizTalk Server電腦的訊息總數。

  • 每秒傳送的訊息數 –在測試期間,記錄每秒從 Load Agent 電腦傳送到BizTalk Server電腦的訊息。

  • 平均用戶端延遲 –若要記錄測試負載代理程式用戶端在負載測試期間起始要求並從BizTalk Server電腦收到回應之間的平均時間量。

  • 要求-回應持續時間平均 (毫秒) –BizTalk:Messaging Latency\Request-Response Latency (sec) 效能監視器 counter for the BizTalkServerIsolatedHost 所報告

    注意

    其中,多個虛擬化的 BizTalk 主機會執行這些計數器的平均值,因為是從記錄中計算而來。

  • 每秒完成的協調流程 –BizTalkServerApplication (BizTalkServerApplication) \Orchestrations completed/sec效能監視器 計數器所報告。 此計數器提供BizTalk Server解決方案輸送量的良好量值。

  • 訊息處理 < 百分比 3 秒 – 在測試期間記錄在 3 秒內處理的訊息總數。

    VSTS 2008 負載測試用來在所有測試中產生一致的負載。 測試期間修改了下列測試回合設定和負載模式,以調整每個測試的負載設定檔:

  • 測試回合設定

    根據所執行的測試,已修改下列測試回合設定:

    • 執行持續時間 – 指定測試的執行時間長度。

      測試回合設定測試回合設定

  • 測試模式設定

    根據所執行的測試,已修改下列測試模式設定:

    1. 模式– 指定模擬使用者負載在負載測試期間如何調整。 負載模式是以 常數步驟目標 為基礎。 執行的所有負載測試都是常數或步驟。

      注意

      本指南為了目的而執行的所有測試都會使用 常數 負載模式或 步驟 負載模式。 常數載入模式和步驟載入模式提供下列功能:

      • 常數載入模式 – 負載模式在測試期間相同,模擬使用者的數目會從預先定義的層級開始,而且不會變更。
        • 步驟載入模式 – 負載模式會在測試回合期間增加;模擬使用者的數目會從預先定義的層級開始,並在測試期間以預先定義的間隔遞增預先定義的數量。
    2. 常數使用者計數 (常數載入模式) – 針對 Visual Studio 負載測試專案 app.config 檔案中指定的端點位址產生負載的虛擬使用者數目。 此值是在用於負載測試的負載模式設定中指定。

    3. 初始使用者計數 (步驟載入模式) – 在步驟負載模式測試開始時,針對指定端點位址產生負載的虛擬使用者數目。 此值是在用於負載測試的負載模式設定中指定。

    4. 步驟載入模式 (最大使用者計數) – 在步驟負載模式測試結束時,針對指定端點位址產生負載的虛擬使用者數目。 此值是在用於負載測試的負載模式設定中指定。

    5. 步驟持續時間 (步驟載入模式) – 虛擬使用者針對負載測試步驟的指定端點位址產生負載的秒數。

    6. 步驟使用者計數 (步驟載入模式) – 使用步驟載入模式時,每個步驟要增加的虛擬使用者數目。

      測試模式設定測試模式設定

    For more information about working with load tests in Visual Studio 2013, see the topic Working with Load Tests in the Visual Studio 2013 Team System documentation at https://go.microsoft.com/fwlink/?LinkId=141486.

測試期間測量的重要效能指標

下列效能監視器計數器已擷取為所有測試回合的關鍵效能指標 (KPI) :

注意

如需使用效能監視器計數器評估效能的詳細資訊,請參閱 檢查清單:測量 Hyper-V 上的效能

BizTalk Server KPI

  • 每秒處理的檔數 –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計數器所測量。 此計數器會測量每秒收到的 Transact-SQL 命令批次數目。 此計數器用來測量SQL Server電腦上的輸送量。

    網路 KPI

  • BizTalk Server網路輸送量 –由BizTalk Server電腦上的\Network Interface (*) \Bytes Total/sec效能監視器計數器測量。

  • SQL Server網路輸送量 –由 VSTS 2008 Load Test Controller傳回的 SQL 網路介面\Bytes Total/sec (Avg) 測量。

    記憶體 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 已依照下表進行設定。 資料庫和記錄檔在 LUN 之間分隔為 ,如下所示,以減少可能的磁片 I/O 競爭:

    • Data_Sys磁片區用來儲存所有資料庫檔案, (包括 system 和 BizTalk 資料庫) ,但 MessageBox 和 TempDb 資料庫除外。

    • Log_Sys磁片區用來儲存所有記錄檔, (包括 system 和 BizTalk Server 資料庫) MessageBox 和 TempDb 資料庫除外。

    • 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 64KB
    Logs_Sys MASTER 和 MSDB 記錄檔 10 10 64KB
    Data_TempDb TempDB 資料檔案 50 50 64KB
    Logs_TempDb TempDB 記錄檔 50 50 64KB
    Data_BtsMsgBox BizTalkMsgBoxDb 資料檔案 300 100 64KB
    Logs_BtsMsgBox BizTalkMsgBoxDb 記錄檔 100 100 64KB
    Data_BAMPrimaryImport BAMPrimaryImport 資料檔案 10 10 64KB
    Logs_BAMPrimaryImport BAMPrimaryImport 記錄檔 10 10 64KB
    Data_BizTalkDatabases 其他 BizTalk 資料庫資料檔案 20 20 64KB
    Logs_BizTalkDatabases 其他 BizTalk 資料庫記錄檔 20 20 64KB
    N/A MSDTC 記錄檔 5 5 N/A
  • BizTalk Server會根據 提供的 https://go.microsoft.com/fwlink/?LinkId=128383 安裝指南安裝。

  • BizTalk Server最佳做法分析器 (BPA) 工具,用於在系統設定之後執行平臺驗證。 BizTalk Server (https://www.microsoft.com/download/details.aspx?id=43382) 。

虛擬化特定專案

單一 50 GB 固定 VHD 可用來裝載每個 Hyper-V 虛擬機器的作業系統。

已修正 VHD 已使用,而不是動態調整 VHD 大小,因為它們會立即將 VHD 的儲存體配置到裝載所在磁片磁碟機上的檔案。 這樣可減少裝載 VHD 檔案的實體磁片磁碟機上發生的片段,這可改善磁片 I/O 效能。

若要設定虛擬機器,Windows Server 2008 SP2 64 位版本的安裝是在單一 VHD 上執行。 安裝所有適當的更新之後,基底虛擬機器會使用隨 Windows Server 2008 SP2 一起安裝的 sysprep 公用程式進行映射處理,其位於 %WINDIR%\system32\sysprep 目錄中。

接著會複製此基底 VHD,並做為在環境中部署的所有 Hyper-V 虛擬機器的基礎。 Sysprep 是在基底 VHD 映射上執行,以重設系統安全性識別碼,然後再將任何SQL Server或BizTalk Server二進位檔部署至系統。

注意

在伺服器上安裝並設定BizTalk Server之後執行 Sysprep,可以透過使用 BizTalk Server 提供的 Sysprep 回應檔案和腳本來完成。 這些範例腳本的設計目的,僅適用于安裝在 32 位和 64 位版本的 Windows Server 2008 SP2 上BizTalk Server。 如需詳細資訊,請參閱線上BizTalk Server檔。

自動 Windows 安裝程式參考可在 取得 https://go.microsoft.com/fwlink/?LinkId=142364

另請參閱

附錄 C:BizTalk Server 和 SQL Server Hyper-V 可支援性