共用方式為


步驟 4:設定 BizTalk Server 環境以進行負載測試

本主題提供建立 BizTalk Server 接收位置、接收埠和傳送埠的相關信息,以執行 步驟 1:建立單元測試以將檔提交至 BizTalk Server步驟 3:建立負載測試以同時執行多個單元測試中所述的程式代碼。

設定 BizTalk Server 環境以進行負載測試

步驟 3:建立負載測試以同時執行多個單元測試主題所述,負載測試BTS_Messaging_Step設定為執行單元測試 BTSMessaging 和 BTSMessaging2 接著,這些單元測試會載入訊息復本 C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml,並將其傳送至專案應用程式組態 (app.config) 檔案下一節所定義的 BTSMessagingEPBTSMessagingEP2 端點:

<-- BTSMessagingEP --><endpoint address=“net.tcp://BizTalk Server Computer:8123/btsloadtest” binding=“netTcpBinding” bindingConfiguration=“netTcpBinding” contract=“System.ServiceModel.Channels.IRequestChannel” name=“BTSMessagingEP” /><endpoint address=“net.tcp://BizTalk Server Computer:8123/btsloadtest” binding=“netTcpBinding” bindingConfiguration=“netTcpBinding” contract=“System.ServiceModel.Channels.IRequestChannel” name=“BTSMessagingEP2” />

備註

如先前所述, BizTalk Server 計算機是實際 BizTalk Server 計算機 名稱的佔位元,或在 BizTalk Server 計算機設定為網路負載平衡 (NLB) 叢集的成員時; BizTalk Server 計算機 是對應 NLB 虛擬伺服器名稱或位址的佔位元。

基於此範例的目的,使用了兩部 BizTalk Server 計算機,而 BizTalk Server 消息框資料庫位於遠端 SQL Server 計算機上。

建立 BizTalk Server 傳送和接收主機

請遵循 BizTalk Server 文件主題 如何建立新的主機 中的步驟,以建立 BizTalk Server 用於傳送埠和傳送配接器處理程式的「傳送」主機。 使用下列屬性設定主機:

房產 價值觀
名稱 TxHost
類型 In-Process
允許主機追蹤 請確定此方塊沒勾選。
驗證信任 請確定此方塊是未選中的。
僅支持32位 請確定此方塊未核取。
將此設為群組中的預設主機 請確保未勾選該選框。
Windows 群組 用來控制此主機和相關聯主機實例存取權的 Windows 群組。 為預設進程主機建立的視窗群組會命名為 <計算機名稱>\BizTalk 應用程式使用者(針對單一伺服器 BizTalk Server 安裝)或 <功能變數名稱>\BizTalk 應用程式使用者(針對多部伺服器 BizTalk Server 安裝,需要使用網域群組)。 注意:<計算機名稱和><功能變數名稱>是建立群組時所使用之實際計算機名稱或功能變數名稱的佔位元。

如果為此主機建立新的群組,則必須具有 主機群組主題中所述的許可權。

重複建立「傳送」主機以建立「接收」主機時所遵循的步驟。 請將 "接收" 主機設定為以下屬性值:

房產 價值觀
名稱 RxHost
類型 In-Process
允許主機追蹤 請確保此方塊為未選取狀態。
驗證信任 請確定此方塊未勾選。
僅限32位元 請確定此方塊未核取。
將此設為群組中的預設主機 請確保此方塊未被勾選。
Windows 群組 用來控制此主機和相關聯主機實例存取權的 Windows 群組。 為預設進程主機建立的視窗群組會命名為 <計算機名稱>\BizTalk 應用程式使用者(針對單一伺服器 BizTalk Server 安裝)或 <功能變數名稱>\BizTalk 應用程式使用者(針對多部伺服器 BizTalk Server 安裝,需要使用網域群組)。 注意:<計算機名稱和><功能變數名稱>是建立群組時所使用之實際計算機名稱或功能變數名稱的佔位元。

如果為此主機建立新的群組,則必須具有 主機群組主題中所述的許可權。

建立 BizTalk Server 傳送和接收主機的實例

請遵循 BizTalk Server 檔主題如何新增主機執行個體中的步驟來建立和啟動 BizTalk Server「傳送」主機的執行個體。 設定 「傳送」主機的實例,以在 BizTalk Server 群組中的每個 BizTalk Server 上執行,並使用下列屬性值設定每個主機實例:

房產 價值觀
主機名稱 從 [主機名] 旁的下拉式清單中選取 [TxHost]。
伺服器 [伺服器] 旁的下拉式清單中選取將執行此主機實例的 BizTalk Server。
登入 1.按兩下 [ 設定 ] 按鈕以顯示 [ 登入認證 ] 對話框。
2.在 [ 登入認證] 對話框中,輸入下列指定屬性的值:
財產
登入:屬於與此 BizTalk Server 主機相關聯之 Windows 群組成員的用戶帳戶名稱。
密碼[登入 ] 文本框中所指定用戶帳戶的密碼。
3.按兩下 [確定 ] 關閉 [ 登入認證 ] 對話框。
停用主機實例的啟動功能。 請確定此方塊沒有被勾選。

建立主機實例之後,以滑鼠右鍵按兩下主機實例,然後從作功能表中選取 [ 開始 ]。

重複建立「傳送」主機實例時所遵循的步驟,以建立「接收」主機實例。 設定 「接收」主機的實例,以在 BizTalk Server 群組中的每個 BizTalk Server 上執行,並使用下列屬性值設定每個主機實例:

房產 價值觀
主機名稱 從 [主機名] 旁的下拉式清單中選取 [RxHost]。
伺服器 [伺服器] 旁的下拉式清單中選取將執行此主機實例的 BizTalk Server。
登入 1.按兩下 [ 設定 ] 按鈕以顯示 [ 登入認證 ] 對話框。
2.在 [ 登入認證] 對話框中,輸入下列指定屬性的值:
財產
登入:屬於與此 BizTalk Server 主機相關聯之 Windows 群組成員的用戶帳戶名稱。
密碼[登入 ] 文本框中所指定用戶帳戶的密碼。
3.按兩下 [確定 ] 關閉 [登入認證] 對話框。
停用主機實例以防止啟動 請確定此方塊取消勾選。

建立主機實例之後,以滑鼠右鍵按兩下主機實例,然後從作功能表中選取 [ 開始 ]。

建立 BizTalk Server 接收埠

遵循 BizTalk Server 檔中如何建立接收埠 主題中的步驟,以建立 One-Way 接收埠。 建立接收埠時,請將所有屬性保留為預設值,但如下表所述:

房產 價值觀
一般\名稱 BTSLoadTestMessaging.OneWay.ReceivePort(BTS負載測試消息.單向.接收端口)
一般\介面類型 One-Way
一般\驗證 無驗證
一般\啟用路由以處理失敗訊息 請確定此方塊沒有被勾選。
一般\描述 保留空白
進入地圖 沒有
追蹤 確定未核取所有方塊。
接收點位置 按兩下 [新增],這會顯示 [ 接收位置屬性 ] 對話框,此對話框應如下一節建立 BizTalk Server 接收位置中所述進行設定。

建立 BizTalk Server 接收位置

在建立 BizTalk Server 接收埠時顯示的 [ 接收位置屬性 ] 對話框中,套用指定的屬性值:

房產 價值觀
名稱: BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation
接收器處理程式: RxHost
接收管線: PassThruReceive
描述: 將此保留空白
類型: 從下拉式清單中選取 [WCF-Custom ],然後按兩下 [ 設定 ] 按鈕,這會顯示 [WCF-Custom 傳輸屬性 ] 對話框,如下列小節所述, 設定 WCF-Custom 接收傳輸

設定 WCF-Custom 接收器傳輸

在建立 BizTalk Server 接收位置時顯示的 WCF-Custom 傳輸屬性 對話框中,保留所有屬性的預設值,但如下表所述:

房產 價值觀
一般\位址 (URI) net.tcp://localhost:8123/btsloadtest
裝訂\裝訂類型 netTcpbinding
Binding\NetTcpBindingElement\listenBacklog 400
Binding\NetTcpBindingElement\maxConnections 400
Binding\Security\NetTcpSecurityElement\mode 沒有
Behavior\ServiceBehavior\serviceThrottling\ServiceThrottlingElement 注意: 若要將 serviceThrottling 行為新增至行為清單,請以滑鼠右鍵單擊 ServiceBehavior,按兩下 [ 新增擴充功能],從行為延伸模塊清單中選取 serviceThrottling ,然後按兩下 [ 確定]。 ServiceThrottlingElement 屬性設定為下列值:

- maxConcurrentCalls 400
- maxConcurrentInstances 400
- maxConcurrentSessions 400
Behavior\ServiceBehavior\serviceDebug\ServiceDebugElement 注意: 若要將 serviceDebug 行為新增至行為清單,請以滑鼠右鍵按兩下 ServiceBehavior,按兩下 [ 新增擴充功能],從行為延伸模組清單中選取 serviceDebug ,然後單擊 [ 確定]。 ServiceDebugElement 屬性的清單保留為預設值 (空白),但下列屬性應變更為 True 的值:

- httpHelpPageEnabled True
- httpsHelpPageEnabled
- includeExceptionDetailInFaults

按兩下 [確定 ] 關閉 [WCF-Custom 傳輸屬性] 對話框,然後按下 [ 確定 ] 以關閉 [接收位置屬性] 對話方塊。

建立 BizTalk Server 傳送埠

請遵循如何在 BizTalk Server 檔中建立 傳送埠 主題中的步驟,建立 靜態單向 傳送埠。 建立傳送埠時,請將所有屬性保留為預設值,但如下表所述:

房產 價值觀
一般\名稱 BTSLoadTest.Messaging.Send.WCF-Custom
一般\傳送處理程式 TxHost
一般\傳送管線 PassThruTransmit
篩選器\名稱 BTS.ReceivePortName
篩選器\運算符 ==
篩選器\值 BTSLoadTest.Messaging.OneWay.ReceivePort
篩選器;依分組 注意:如果這些屬性已設定為正確的值,則在 [傳送埠屬性] 對話框的 [篩選] 頁面底部,應會顯示 BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort。 由於套用此篩選,此傳送埠會透過名為 BTSLoadTest.Messaging.OneWay.ReceivePort 的接收埠訂閱 BizTalk Server 所接收的任何訊息。
追蹤 確定未核取所有方塊。
一般\類型 從下拉式清單中選取 [WCF-Custom ],然後按兩下 [ 設定 ] 按鈕,這會顯示 [WCF-Custom 傳輸屬性 ] 對話框,如下一節所述, 設定 WCF-Custom 傳送傳輸

設定 WCF-Custom 發送傳輸

在建立 BizTalk Server 傳送埠時顯示的 [WCF-Custom 傳輸屬性 ] 對話框中,保留所有屬性的預設值,但如下表所述:

房產 價值觀
一般\位址 (URI) net.tcp://<Computer Name>:2001/TCP1 重要:<Computer Name> 是用來裝載 IndigoService.exe的實際計算機名稱佔位符,其設計目的是要處理透過 WCF 傳送的訊息。 因為 IndigoService.exe 需要很少的資源,所以在 BizTalk Server 群組資料庫所使用的 SQL Server 計算機上執行 IndigoService.exe 通常完全可以接受。
裝訂\裝訂類型 自訂綁定

如同大部分 WCF-Custom 系結類型, customBinding Binding 類型會公開數個屬性,這應該設定為下列值:

  1. 系結 區段下,有一個與 組態 區段相關聯的 CustomBindingElement 屬性。 將 CustomBindingElement 屬性的 [組態] 區段中的所有值保留為預設值。

  2. 然後在 [CustomBindingElement] 底下,以滑鼠右鍵按兩下 textMessageEncoding,然後選取 [移除擴充功能] [Del]。 同樣地,以滑鼠右鍵按兩下 HTTPTransport,然後選取 [移除擴充功能] [Del]。

  3. 現在,以滑鼠右鍵按下 CustomBindingElement ,然後選取 [ 新增擴充功能] 以顯示 [ 選取綁定項延伸模組 ] 對話方塊。

  4. 選取 binaryMessageEncoding ,然後按兩下 [ 確定 ] 以新增 binaryMessageEncoding 元素延伸。 重複步驟以顯示 [ 選取綁定項延伸 模組] 對話框,然後向下捲動可用的元素延伸清單,直到您看到 tcpTransport 元素延伸,選取 [tcpTransport ],然後按兩下 [ 確定]。

  5. [CustomBindingElement] 下,選取 tcpTransport 元素,然後在 [tcpTransport] 的 [組態] 區段中,將所有屬性保留為預設值,但如下表所述:

    房產 價值觀
    連接緩衝區大小 (connectionBufferSize) 2097152
    最大緩衝區大小 (maxBufferSize) 2097152
    maxPendingAccepts 400
    最大待處理連線數 400
    監聽積壓 400
    最大緩衝集區大小 2097152
    接收的最大消息大小 (maxReceivedMessageSize) 2097152
  6. tcpTransport 元素下,選取 ConnectionPoolSettings 元素,並將所有屬性保留為預設值,但 maxOutboundConnectionsPerEndpoint 屬性除外,此屬性應變更為 400。

  7. 單擊 [確定] 關閉 [WCF-Custom 傳輸內容] 對話框,然後再單擊 [確定] 關閉 BTSLoadTest.Messaging.SendWCF-Custom – [傳送埠屬性] 對話框。

設定電腦接收由 BizTalk Server 傳送埠發送的訊息

如先前所述,IndigoService.exe 的設計訴求是取用透過 WCF 傳送的訊息。 其中包含下列 4 個檔案,而且它們應該位於您想要執行 IndigoService.exe的電腦上:

  1. \IndigoService\bin\Release\IndigoService.exe

  2. \IndigoService\bin\Release\IndigoService.exe.config

  3. \IndigoService\bin\Release\Response.xml

  4. \IndigoService\bin\Release\StartIndigoService.bat

    首先按兩下 StartIndigoService.bat以開始 IndigoService.exe。 IndigoService.exe 會取用傳送至 IndigoService.exe.config 檔案中所指定端點的訊息:

    <endpoint address=“net.tcp://localhost:2001/TCP1” binding=“netTcpBinding” bindingConfiguration=“Binding1” name=“endpoint1” contract=“IndigoService.IServiceTwoWaysVoidNonTransactional” />

    這就是為什麼傳送埠位址設定為 net.tcp://Computer Name>:2001/<TCP1 的位址 (URI)

    因為 IndigoService.exe 需要很少的資源,所以在 BizTalk Server 資料庫所使用的 SQL Server 計算機上執行 IndigoService.exe 通常完全可以接受。

停用 BizTalk Server 群組的追蹤和節流

若要判斷系統的絕對永續性輸送量,在開始負載測試之前,應該先停用訊息追蹤和節流。 您可以遵循下列步驟,使用 BizTalk Server 管理控制台來完成此動作:

  1. 啟動 BizTalk Server 管理控制台。 按兩下 [開始],指向 [所有程式],指向 [BizTalk Server 2010 ],然後按兩下 [ BizTalk Server 系統管理]。

  2. [BizTalk Server 系統管理] 底下,選取 [BizTalk 群組],如果列出或未列出,請以滑鼠右鍵按兩下 [ BizTalk Server 系統管理],選取 [ 連接到現有群組],輸入 SQL Server 名稱旁包含 BizTalk 群組 BizTalk Server 管理資料庫的 SQL Server 名稱 ,輸入 [資料庫名稱] 旁的 BizTalk 群組管理資料庫 名稱名稱: 然後按兩下 [ 確定]。

  3. 以滑鼠右鍵按兩下 [BizTalk 群組] 節點,然後選取 [ 設定 ] 以顯示 [BizTalk 設定儀錶板]。

  4. 按兩下即可在 BizTalk 設定儀錶板的左側窗格中選取 [ 主機 ]。

  5. 按兩下 [主機 ] 旁的下拉式清單,選取效能測試期間將使用的其中一部主機。

  6. 將屬性保留為預設值,但如下表所述:

    房產 價值觀
    一般\將追蹤數據移至 DTA DB 如果此方塊已被核取,取消核取。
    僅限通用\32 位元 若此方塊已被勾選,請取消勾選。
    一般\輪詢間隔\傳訊 設定為 20000000 的值
    一般\輪詢間隔\協調流程 設定為 20000000 的值
    Resource-Based 限制\正在處理的訊息 設定為 10000 的值
    Resource-Based 限流\內部訊息佇列大小 設定為 10000 的值
    DB 中的Resource-Based 限流\訊息計數 設定為 0 的值
    Resource-Based 限制\記憶體用量\處理虛擬進程 設定為 0 的值
    Rate-Based 限速\發佈\限速覆寫 設定為 [不要限制]
    Rate-Based 限制\傳遞\限制覆蓋 設定為不限制流量
  7. 針對效能測試期間將使用的每個主機重複步驟 6 中所述的程式。

  8. 按兩下即可在 BizTalk 設定儀錶板的左側窗格中選取 [主機實例 ]。

  9. 單擊 [ 主機實例] 旁的下拉式清單:選取將用於效能測試的其中一個主機實例。

  10. 將屬性值保留為其預設設定,但將 .NET CLR 最大背景工作線程 變更為 100 的值,並將 .NET CLR 最低背景工作線程 變更為 25

  11. 針對效能測試期間將使用的每個主機實例,重複步驟 10 中所述的程式。

    即使停用追蹤和節流在生產環境中並非建議的操作,考量到這些作業的效能成本如此高昂,停用它們來找出 BizTalk Server 環境的真正最大可持續輸送量(MST)是合乎邏輯的。 這可讓測試人員清楚地看到已套用至環境的任何效能調整的影響。 當然,可以提出一個論點,即不應停用追蹤,如果您一開始就知道您的 BizTalk Server 應用程式需要追蹤,那麼您應該啟用追蹤。 也就是說, 為了進行效能測試,應盡一切努力停用節流。 節流對於防止 BizTalk Server 因為生產環境中的負載過大而「中斷」非常有用。 不過,您不希望在效能測試期間啟用節流,因為從效能的觀點來看,這是昂貴的,而且因為如果在負載測試期間節流啟動,那麼您將很難判斷 BizTalk Server 應用程式實際可以達到的效能層級。 下一個主題說明如何執行步驟負載測試,以將 BizTalk Server 環境推向超出 MST 的負荷,然後使用恆定負載測試將其縮減回實際的 MST。 如果已啟用節流,則幾乎不可能將 BizTalk 環境推送到 MST 之外,讓您可以接著探索真正的 MST 是什麼。