共用方式為


適用于 BizTalk Server 的 Low-Latency 案例優化

根據預設,BizTalk Server已針對輸送量進行優化,而不是低延遲。 下列優化已套用至本指南所用測試案例的BizTalk Server。

注意

這些優化會改善延遲,但可能會針對整體輸送量進行一些成本。

增加BizTalk Server主機內部訊息佇列大小

每個 BizTalk 主機都有自己的內部記憶體內部佇列。 將這個佇列的大小從預設值 100 增加到 1000,以改善低延遲案例的效能。 如需修改內部訊息佇列大小值的詳細資訊,請參閱 的BizTalk Server說明 https://go.microsoft.com/fwlink/?LinkID=120225 中的。

減少BizTalk Server管理資料庫之adm_ServiceClass資料表中的 MaxReceiveInterval 值

BizTalk Server使用輪詢機制從 Messagebox 中的主機佇列接收訊息。 BizTalk Management (BizTalkMgmtDb) 資料庫中adm_ServiceClass資料表中的 MaxReceiveInterval 值是每個 BizTalk 主機實例輪詢 MessageBox 的毫秒數上限。 adm_ServiceClass資料表包含下列服務類型的記錄:

  • XLANG/S – 適用于 BizTalk 協調流程主機實例

  • 傳訊 InProcess – 適用于進程內主機實例

  • MSMQT – 適用于 MSMQT 配接器主機實例

  • 傳訊隔離 – 適用于進程外主機實例,由 HTTP、SOAP 和特定 WCF 接收配接器處理常式使用

根據預設,此值會設定為 500 毫秒,其已針對輸送量進行優化,而不是低延遲。 在某些情況下,可以藉由減少此值來改善延遲。

注意

此值的變更會影響相關聯服務類型的所有實例,因此,請務必先評估所有主機實例的影響,然後再變更此值。

只有在 Messagebox 沒有剩餘未處理的訊息時,才會使用這個值。 如果 Messagebox 中有未處理訊息的常數待處理專案,BizTalk Server會嘗試處理訊息,而不需等候輪詢延遲。 處理所有訊息之後,BizTalk Server將會使用針對 MaxReceiveInterval 指定的值開始輪詢。

在具有高主機實例比率與 Messagebox 資料庫實例的BizTalk Server環境中,減少 MaxReceiveInterval 的值可能會導致裝載 Messagebox 資料庫實例的SQL Server電腦上過度 CPU 使用率。 例如,如果 MaxReceiveInterval 在具有單一 Messagebox 和 > 50 個主機實例的BizTalk Server環境中減少為低值 (< 100) ,SQL Server上的 CPU 使用率可能會超過 50%。 發生這種狀況的原因是,與持續輪詢主機佇列相關聯的額外負荷相當重要。 如果您將 MaxReceiveInterval 減少為小於 100 的值,您也應該評估這對您的SQL Server電腦的 CPU 使用率的影響。