共用方式為


系統層級的瓶頸

本主題描述如何解決可能會影響BizTalk Server解決方案效能的常見系統層級瓶頸。

建立基準組態的快照集

收集下列資訊可提供您基準設定的快照集,可用來協助修正系統層級瓶頸。

收集檔

檢閱案例架構和基礎結構的檔。

執行基準安全性分析器

請遵循下列步驟來執行基準安全性分析器:

  1. 使用 Microsoft Baseline Security Analyzer

  2. 使用網域系統管理員帳戶,登入裝載BizTalk Server和SQL Server電腦的相同網路上的電腦。

  3. 例如,在目前電腦上安裝 Microsoft Baseline Security Analyzer (例如,其中一部BizTalk Server電腦或個別的電腦) 。

  4. 執行個別掃描 (開始掃描) ,指定為參數名稱或每個BizTalk Server和SQL Server電腦的 IP 位址。

  5. 從 %userprofile%\SecurityScans 目錄複寫每個安全性報告 (.mbsa 檔案) 。

執行BizTalk Server最佳做法分析器

請遵循下列步驟來執行BizTalk Server最佳做法分析器:

  1. 下載BizTalk Server最佳做法分析器

  2. 使用屬於BizTalk Server系統管理員安全性群組一部分的使用者帳戶,登入BizTalk Server節點。

  3. 在目前的電腦上安裝BizTalk Server最佳做法分析器。

  4. 執行工具並儲存報表。

執行 MSInfo32 並儲存結果

請遵循下列步驟來執行 MSInfo32:

  1. 使用網域或本機系統管理員帳戶,登入每個BizTalk Server並SQL Server電腦。

  2. 啟動命令提示字元,並將目錄變更為電腦的 %windir%\system32 目錄。

  3. 從命令提示字元執行 MSinfo32.exe。

  4. 按一下 [ 檔案] 功能表,然後選取 [ 匯出 ] 功能表項目以匯出以儲存電腦設定。

匯出BizTalk Server和SQL Server電腦 TCP/IP 登錄設定-

請遵循下列步驟來儲存BizTalk Server和SQL Server TCP/IP 登錄設定:

  1. 啟動命令提示字元,並將目錄變更為電腦的 %windir%\system32 目錄。

  2. 從命令提示字元執行 Regedit.exe。

  3. 流覽至登錄中的下列機碼:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] (network settings)
    
  4. 以滑鼠右鍵按一下此機碼,然後選取 [ 匯出 ] 將登錄機碼匯出至檔案。

收集 BizTalk 組態檔

在每個BizTalk Server節點上,收集BizTalk Server設定檔,BTSNTSvc.exe.config 64 位主機的檔案 (或 BTSNTSvc64.exe.config) ,位於 BizTalk Server 安裝資料夾 (例如 C:\Program Files\Microsoft BizTalk Server 2010) 。

收集 .NET 組態檔

在每個BizTalk Server節點上,收集 machine.config 和 web.config .NET Framework 4.0 組態檔。 您可以在下列位置找到組態檔:

  • 若為 32 位: %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG 資料夾

  • 若為 64 位: %windir%\Microsoft.NET\Framework64\v4.0.30319\CONFIG 資料夾

使用 BizTalk MsgBoxViewer 工具來收集 MessageBox 資料庫的相關資訊

請遵循下列步驟,使用 BizTalk MsgBoxViewer 工具收集 MessageBox 資料庫的相關資訊:

  1. 下載 BizTalk MsgBoxViewer 工具,此工具可在BHM 狀況監控中使用。

  2. 使用屬於BizTalk Server系統管理員安全性群組一部分的使用者帳戶登入BizTalk Server電腦。

  3. 將 MsgBoxViewer.exe 複製到BizTalk Server電腦。

  4. 啟動工具。

  5. 按一下 [ 要收集的選擇性資訊 ] 索引標籤,然後按一下 [ 選取所有資訊]。

  6. 按一下 [開始收集]。

  7. 當 [狀態] 標籤顯示 [結束集合 ] 訊息時,切換至包含 MsgBoxViewer.exe 可執行檔的資料夾,然後複製產生的報表 (.htm) 和記錄檔。

收集並儲存解決方案中使用的所有元件的原始程式碼

將所有元件的原始程式碼儲存 (,例如協調流程、自訂管線元件和協助程式元件程式碼) 在個別的檔案共用上。

初始疑難排解

BizTalk Server解決方案有某些元件,如果未啟用,則不論 BizTalk 解決方案的整體大小或設計為何,都會造成效能問題。 在參與 BizTalk 解決方案的詳盡瓶頸分析之前,應該先完成下列初步疑難排解工作,以排除一些「一般可疑」。

  • 確認追蹤主機實例正在執行 - 追蹤主機實例負責將 BAM 和 HAT 資料從 MessageBox 資料庫的 TrackingData 資料表移至 BizTalkDTADb 和/或 BAMPrimaryImport 資料庫資料表。 如果追蹤主機實例未執行,追蹤資料將會累積在 MessageBox 資料庫中,並對BizTalk Server解決方案的效能造成負面影響。

  • 確認 Enterprise Single Sign-On (ENTSSO) 服務在所有BizTalk Server電腦上執行 - BizTalk 主機實例會維持與 ENTSSO 服務本機執行實例的相依性。 如果 ENTSSO 服務未在BizTalk Server上執行,則伺服器上的主機實例將無法執行。

  • 確認SQL Server Agent服務在所有SQL Server電腦上執行 - SQL Server Agent服務必須執行,BizTalk SQL Server Agent作業才能執行。 這些作業會執行重要的功能,讓您的伺服器運作正常且狀況良好。

  • 確認 BizTalk SQL Server Agent作業已啟用且未發生例外狀況執行 -即使SQL Server Agent服務正在執行,所有預設的 BizTalk SQL Server Agent作業都會啟用並成功執行。

  • 檢查BizTalk Server和SQL Server事件記錄 - BizTalk Server或SQL Server事件記錄檔的游標檢查可能會顯示可能花費大量時間來診斷和解決的問題。

  • 執行BizTalk Server最佳做法分析器 - BizTalk Server最佳做法分析器會檢查BizTalk Server部署,並產生與最佳做法標準相關的問題清單。 此工具會從不同的資訊來源收集資料,例如 Windows Management Instrumentation (WMI) 類別、SQL Server資料庫和登錄專案,以執行組態層級驗證。 然後,資料會用來評估部署組態。 此工具只會讀取和報告,而且不會修改任何系統設定,而且不是自我調整工具。 下載BizTalk Server最佳做法分析器

高階系統瓶頸

本節說明BizTalk Server解決方案中可能存在的系統層級瓶頸,以及可能的風險降低策略。

磁片 I/O 瓶頸

磁片 I/O 是指應用程式在實體磁片或伺服器上安裝的多個磁片上執行的讀取和寫入作業數目。 可能導致磁片 I/O 和相關瓶頸的常見活動包括長時間執行的檔案 I/O 作業、資料加密和解密、從資料庫資料表讀取不必要的資料,以及實體記憶體不足,這可能會導致過度分頁活動。 磁片速度是評估磁片 I/O 瓶頸時要考慮的另一個因素;更快速的磁片可提供更高的效能,並協助減少磁片 I/O 瓶頸。

下表提供規劃BizTalk Server解決方案磁片子系統時應考慮的因素。

磁片子系統因素 詳細資料
磁片記憶體快取和可用的實體記憶體 因為記憶體會快取到磁片,因為實體記憶體變得有限,所以請確定您有足夠的可用記憶體數量。 當記憶體不足時,更多頁面會寫入磁片,因而增加磁片活動。 此外,請務必將分頁檔案設定為適當的大小。 其他磁片記憶體快取有助於位移磁片 I/O 要求中的尖峰。 不過,請注意,大型磁片記憶體快取很少能解決沒有足夠軸的問題,而且有足夠的軸可以否定大型磁片記憶體快取的需求。 For information on configuring the Windows paging file for optimal performance, see the section “Configure the Windows PAGEFILE for optimal performance” in the topic Optimizing Operating System Performance.
儲存體控制器類型 如果您有電池支援的快取,請啟用寫入快取,以改善交易記錄檔磁片區和資料庫磁片區上的磁片寫入效能。 寫入快取會針對寫入 I/O 要求提供 2 毫秒的回應時間,而不是 10 到 20 毫秒的回應時間,而不啟用寫入快取。 啟用寫入快取可大幅改善用戶端寫入要求的回應性。 讀取快取不會改善BizTalk Server案例中的效能,因為它只適用于交易記錄檔中發生的循序磁片讀取。

交易記錄檔只有在播放時才會讀取,例如在資料庫還原之後或伺服器未正確關機時。 較大的快取允許緩衝處理更多資料,這表示可以容納較長的飽和期間。 如果您的控制器可讓您設定快取頁面大小,您應該將其設定為 4 KB。 較大的大小,例如 8 KB,會導致快取浪費,因為 4 KB I/O 要求會佔用 8 KB 的整個快取頁面,進而將您的可用快取減少一半。
主軸 軸比容量更重要,如果軸支援大量隨機 I/O 要求,則BizTalk Server效能會改善。 規劃不超過 80% 的總使用率,以確保有足夠的 I/O 可供使用,即使發生軸故障也一。
Raid 您使用的 RAID 解決方案應該以適合您環境的成本和效能取捨為基礎。 因此,針對特定資料儲存體需求,建議使用一種以上的 RAID 解決方案。 一般建議如下所示:

- 針對BizTalk Server資料庫,在鏡像集) 中使用 Raid-1+0 (等量集。
- 針對交易記錄檔磁片區使用 Raid-1 (鏡像集,而不需同位) 。
- 一般而言,相較于其他 Raid 組態,不建議使用具有分散式同位) 的 Raid 5 (等量集,因為 Raid 5 不提供最佳可靠性、可用性和效能。
- 由於永久資料遺失的可能性,在BizTalk Server生產環境中,不應在BizTalk Server生產環境中使用 Raid-0 (等量集,而不需要同位) 設定。
匯流排類型 較高的輸送量可提供更佳的效能。 一般而言,SCSI 匯流排提供比 IDE 或 ATA 匯流排更好的輸送量和延展性。 您可以使用下列方程式來判斷匯流排類型的理論輸送量限制:

(匯流排速度 () /每位元組 8 位) X 作業速度 (MHz) = MB/) 秒的輸送量 (

您也可以將多個磁片磁碟機放在不同的 I/O 匯流排上,以改善磁片 I/O 效能。

測量磁片 I/O 瓶頸的效能計數器

注意

嘗試分析磁片效能瓶頸時,您應該一律使用實體磁片計數器。 不過,如果您使用軟體 RAID,您應該使用邏輯磁片計數器。 如同邏輯磁片和實體磁片計數器,這些計數器物件中都有相同的計數器可用。 磁片區管理員會追蹤邏輯磁片資料 (或管理員) ,而實體磁片資料則由資料分割管理員追蹤。

下列效能計數器應該用來判斷您的系統是否遇到磁片 I/O 相關瓶頸:

  • PhysicalDisk\Avg. Disk Queue Length

    • 臨界值:不應高於軸數加上兩個。

    • 重要性:此計數器表示在取樣間隔期間排入所選磁片之佇列的讀取和寫入要求平均數目。 此計數器適用于收集並行資料,包括資料高載和尖峰負載。 這些值代表驅動程式取得統計資料的正式發行前小眾測試版要求數目。 這表示要求不一定排入佇列,但實際上可能處於服務中或已完成,而且在備份路徑時。 可能的正式發行前小眾測試版位置包括下列專案:

      • SCSIport 或 Storport 佇列

      • OEM 驅動程式佇列

      • 磁碟控制卡佇列

      • 硬碟佇列

      • 主動從硬碟接收

  • PhysicalDisk\Avg. 磁碟讀取佇列長度

    • 臨界值:應該小於兩個。

    • 重要性:此計數器表示在取樣間隔期間排入所選磁片之佇列的平均讀取要求數目。

  • PhysicalDisk\Avg. 磁碟寫入佇列長度

    • 臨界值:應該小於兩個。

    • 重要性:此計數器表示在取樣間隔期間排入所選磁片之寫入要求的平均數目。

  • PhysicalDisk\Avg. Disk sec/Read

    • 臨界值:沒有特定值。

      • 小於 10 毫秒 (毫秒) = 良好

      • 介於 15 到 25 毫秒 = fair 之間

      • 大於 25 毫秒 = 不良

    • 重要性:此計數器指出從磁片讀取作業的平均時間,以秒為單位。 如果數位大於 25 毫秒 (毫秒) ,這表示從磁片讀取時,磁片系統發生延遲。 對於裝載BizTalk Server任務關鍵性伺服器,可接受的臨界值會大幅降低,大約 10 毫秒。

  • PhysicalDisk\Avg. Disk sec/Write

    • 臨界值:沒有特定值。

      • 小於 10 毫秒 (毫秒) = 良好

      • 介於 15 到 25 毫秒 = fair 之間

      • 大於 25 毫秒 = 不良

    • 重要性:此計數器表示資料寫入作業到磁片的平均時間,以秒為單位。 如果數位大於 25 毫秒,則磁片系統會在寫入磁片時遇到延遲。 對於裝載BizTalk Server任務關鍵性伺服器,可接受的臨界值會大幅降低,大約 10 毫秒。

  • PhysicalDisk\Avg. Disk sec/Transfer

    • 臨界值:不應超過 18 毫秒。

    • 重要性:此計數器表示平均磁片傳輸的時間,以秒為單位。 這可能表示大量磁片分散、磁片緩慢或磁片失敗。 將 實體磁片\平均磁片秒/傳輸Memory\Pages/sec 計數器的值相乘。 如果這些計數器的乘積超過 0.1,分頁需要超過 10% 的磁片存取時間,因此您需要更多可用的實體記憶體。

  • PhysicalDisk\Disk Writes/sec

    • 臨界值:取決於製造商的規格。

    • 重要性:此計數器表示磁片上寫入作業的速率。

  • 處理器\% DPC 時間、% 停機時間和 % 特殊許可權時間 - 如果停機時間與延遲過程呼叫 (DPC) 時間是特殊許可權時間的大部分,核心會花費大量時間處理 I/O 要求。 在某些情況下,您可以藉由將中斷和 DPC 親和性設定為多處理器系統上少數 CPU 來改善效能,進而改善快取位置。 在其他情況下,最好將中斷和 DPC 分散到許多 CPU,以便讓中斷和 DPC 活動成為瓶頸。 如需使用中斷篩選組態工具將網路介面卡中斷系結至多處理器電腦上的特定處理器的詳細資訊,請參閱 優化作業系統效能中的一節。

  • Processor\DPCs Queued / sec - 測量 DPC 耗用 CPU 時間和核心資源的方式。

  • Processor\Interrupts / sec - 另一個測量中斷如何耗用 CPU 時間和核心資源。 新式磁碟控制卡通常會結合或聯合中斷,讓單一中斷會導致處理多個 I/O 完成。 當然,延遲中斷 (之間會有取捨,因此完成) 並降低 CPU 處理時間。

磁片 I/O 微調選項

如果您判斷磁片 I/O 在您的環境中是瓶頸,可能會使用下列技術來減輕瓶頸:

  • 重組磁片 - 使用 PageDefrag 公用程式 提供的 來重組 Windows 分頁檔案,並預先配置主要檔案資料表。

  • 使用等量集在多個磁片上同時處理 I/O 要求 - 使用鏡像磁片區來提供容錯並增加 I/O 效能。 如果您不需要容錯,請實作等量集以快速讀取和寫入,並改善儲存容量。 使用等量集時,會減少每個磁片使用率,因為工作分散到磁片區,而且整體輸送量會增加。 如果您在等量集中新增其他磁片並不會增加輸送量,則您的系統可能會因為磁碟控制卡在磁片之間發生爭用而遇到瓶頸。 在此情況下,新增額外的磁碟控制卡有助於分散負載並提升效能。

  • 將工作負載分散到多個磁片磁碟機 - Windows 叢集和分散式檔案系統提供在多個磁片磁碟機上進行負載平衡的解決方案。

  • 限制使用檔案壓縮或加密 - 檔案壓縮和加密是 I/O 密集作業。 您應該只在絕對必要的情況下使用它們。

  • 停用簡短名稱的建立 - 如果您不支援適用于 Windows 3.x 用戶端的 MS-DOS,請停用簡短名稱以改善效能。 For more information about disabling the creation of short names, see the section “Disable short-file-name (8.3) generation” in Optimizing Operating System Performance.

  • 停用上次存取更新 - 根據預設,每當目錄周遊目錄時,NTFS 會更新上次存取目錄的日期和時間戳記。 對於大型 NTFS 磁片區,此更新程式可能會阻礙效能。 For more information about disabling last access updates, see the section “Disable NTFS last access updates” in Optimizing Operating System Performance.

    警告

    某些應用程式,例如累加式備份公用程式,依賴 NTFS 更新資訊,且無法在沒有它的情況下正常運作。

  • 保留主檔案資料表的適當空間 - 根據通常儲存在 NTFS 磁片區上的檔案數目,將 NtfsMftZoneReservation 專案新增至登錄。 當您將這個專案新增至登錄時,系統會保留主要檔案資料表磁片區的空間。 以這種方式保留空間可讓主要檔案資料表以最佳方式成長。 如果您的 NTFS 磁片區通常會儲存相對較少的檔案,請將此登錄專案的值設定為預設值 1。 如果您的 NTFS 磁片區儲存了中等數目的檔案,而且如果您的 NTFS 磁片區通常會儲存中等數目的檔案,則通常可以使用 2 或 3 的值,如果 NTFS 磁片區通常包含相對大量的檔案,則使用值為 4 () 上限。 不過,請務必測試大於 2 的任何設定,因為這些較大的值會導致系統為主要檔案資料表保留更大的磁片部分。 如需將 NtfsMftZoneReservation 新增至登錄的詳細資訊,請參閱 優化作業系統效能中的一節。

  • 使用最有效率的磁片系統 - 除了所使用的實體磁片之外,請考慮將使用的磁碟控制卡和纜線類型。 有效率的磁片子系統也應該提供支援中斷仲裁或中斷避免的驅動程式,以減少磁片 I/O 所造成的處理器中斷活動。

  • 確定您使用適當的 RAID 設定 - 使用 RAID 10 (等量和鏡像) 以獲得最佳效能和容錯。 取捨是使用 RAID 10 的成本很高。 當您有廣泛的寫入作業時,請避免使用 RAID 5。 如需在BizTalk Server環境中實作 RAID 的詳細資訊,請參閱BizTalk Server資料庫優化中的一節。

  • 請考慮使用資料庫分割區 - 如果您有資料庫瓶頸,請考慮使用資料庫分割區,並將磁片對應至特定資料表和交易記錄。 分割區的主要用途是克服大型資料表的磁碟瓶頸。 如果您有具有大量資料列的資料表,而且您判斷它是瓶頸的來源,請考慮使用分割區。 針對SQL Server,您可以使用檔案群組來改善 I/O 效能。 您可以將資料表與檔案群組建立關聯,然後將檔案群組與特定硬碟產生關聯。 如需針對BizTalk Server資料庫使用優化檔案群組的詳細資訊,請參閱優化資料庫的檔案群組

  • 如果您發生過多的分頁錯誤,請考慮新增實體記憶體 - 記憶體的高值 :Pages/sec 效能計數器可能表示過度分頁,這會增加磁片 I/0。 如果發生這種情況,請考慮新增實體記憶體以減少磁片 I/O 並提升效能。

  • 請考慮使用具有較高 RPM 評等的磁片,或使用存放區域網路 (SAN) 裝置 - 相較于具有較低 RPM 評等的磁片,具有較高 RPM 評等的磁片可提供更高的效能。 SAN 裝置通常會提供最上層的效能,但價格高階。

  • 請遵循 優化資料庫效能中的建議。 本主題提供數個在設定BizTalk Server前後優化資料庫效能的建議。

CPU 瓶頸

伺服器上執行的每個應用程式都會取得 CPU 的時間配量。 CPU 可能能夠有效率地處理電腦上執行的所有進程,或可能會超載。 藉由檢查處理器活動和個別進程的活動,包括執行緒建立、執行緒切換和內容切換,您可以深入瞭解處理器工作負載和效能。

如果...

  • Processor\% Processor Time效能計數器的值通常超過 75%。

  • System\ Processor Queue Length效能計數器的值是 2 或多個持續一段時間。

  • Processor\% Privileged TimeSystem\CoNtext Switches/sec效能計數器的值異常高。

    如果 Processor\ % Processor Time 效能計數器的值很高,則佇列就會發生,而且在大部分情況下 ,System\ Processor Queue Length 的值也會很高。

測量 CPU 瓶頸的效能計數器

下列效能計數器應該用來判斷您的系統是否遇到 CPU 相關瓶頸:

  • 處理器\% 處理器時間

    • 臨界值:應小於 85%。

    • 重要性:此計數器是處理器活動的主要指標。 高值不一定是錯誤的。 不過,如果其他處理器相關計數器以線性方式增加,例如 Processor\% Privileged TimeSystem\Processor Queue Length,高 CPU 使用率可能值得調查。

  • 處理器\% 特殊許可權時間

    • 臨界值:一致超過 75% 的圖表示瓶頸。

    • 重要性:此計數器表示執行緒在特殊許可權模式中執行的時間百分比。 當您的應用程式呼叫作業系統函式 (例如執行檔案或網路 I/O 或配置記憶體) 時,這些作業系統函式會以特殊許可權模式執行。

  • 處理器\% 停機時間

    • 臨界值:取決於處理器。

    • 重要性:此計數器表示處理器花費接收和維護硬體中斷的時間百分比。 此值是產生中斷之裝置活動的間接指標,例如網路介面卡。 此計數器大幅增加表示潛在的硬體問題。

  • System\Processor Queue Length

    • 臨界值:一致高於 2 的平均值表示瓶頸。

    • 重要性:如果有比處理器更多的工作可供執行,執行緒就會排入佇列。 處理器佇列是執行緒的集合,這些執行緒已就緒,但無法由處理器執行,因為另一個執行緒目前正在執行。 超過兩個執行緒的持續或週期性佇列是處理器瓶頸的清楚指示。 在這些情況下,您可以藉由減少平行處理原則來取得更多輸送量。

      您可以將此計數器與 Processor\% Processor Time 計數器搭配使用,以判斷您的應用程式是否可以受益于更多 CPU。 處理器時間有單一佇列,即使在多處理器電腦上也是如此。 因此,在多處理器電腦上,將處理器佇列長度 (PQL) 值除以維護工作負載的處理器數目。

      如果 CPU 非常忙碌, (90% 或更高的使用率) ,且 PQL 平均一致高於每個處理器 2,則您可能會有處理器瓶頸,可受益于新增 CPU。 或者,您可以減少應用層級的執行緒數目和佇列數目。 這會導致較少的內容切換,而較少的內容切換有助於降低 CPU 負載。 PQL 值為 2 或更高且 CPU 使用率偏低的常見原因,就是處理器時間的要求會隨機送達,而執行緒需要來自處理器的不規則時間量。 這表示處理器不是瓶頸,而是應該改善應用程式執行緒邏輯。

  • System\CoNtext Switches/sec

    • 閾值:一般規則是,每個處理器的內容切換速率低於每秒 5,000 個,並不值得擔心。 如果每個處理器的內容切換速率超過每秒 15,000,則內容切換可能會成為瓶頸。

    • 重要性:當優先順序較高的執行緒優先佔用目前執行的較低優先順序執行緒,或高優先順序執行緒封鎖其他執行緒時,就會發生內容切換。 當許多執行緒共用相同的優先順序層級時,可能會發生高階的內容切換。 這通常表示系統上的處理器競爭太多執行緒。 如果處理器使用率和內容切換層級都很低,這通常表示執行緒遭到封鎖。

解決 CPU 瓶頸

第一個步驟是識別哪些進程耗用過多處理器時間。 透過查看 [進程] 頁面上的[CPU] 資料行,使用 Windows工作管理員來識別耗用高階 CPU的進程。 您也可以監視 效能監視器 中的進程\%處理器時間,然後選取您想要監視的進程來判斷此情況。

另一個用來判斷哪些進程耗用過多 CPU 時間的強大工具,是 Visual Studio Team System Profiler,可供 Visual Studio Team System (VSTS) 套件使用。 如需使用 Visual Studio Team System Profiler 的詳細資訊,請參閱 Visual Studio Team System 檔。

判斷 CPU 是瓶頸之後,您有數個選項,包括下列各項:

  • 如果您有多執行緒應用程式,請新增多個處理器。 如果您的應用程式是單一執行緒,請考慮升級至更強大的處理器。

  • 如果您觀察到高速率的內容切換,請考慮在增加處理器數目之前減少進程的執行緒計數。

  • 分析並調整造成高 CPU 使用率的應用程式。 您可以使用 ADPLUS 公用程式傾印執行中的進程,並使用 Windbg 分析原因。 這些公用程式是 Windows 偵錯工具組的一部分。 您可以從 Windows 的偵錯工具下載這些工具。

  • 分析應用程式所產生的檢測記錄,以隔離需要執行時間上限的子系統。 判斷程式碼檢閱是否比調整BizTalk Server環境更有用。

注意

雖然您可以使用 工作管理員 或命令提示字元變更應用程式的處理常式優先順序層級,但通常應該避免這麼做。

記憶體瓶頸

評估記憶體相關的瓶頸時,請考慮不必要的配置、無效率的清除,以及不適當的快取和狀態管理機制。 若要解決記憶體相關的瓶頸,請將程式碼優化以消除這些問題,然後調整配置給應用程式的記憶體數量, (s) 。 如果您在調整記憶體爭用和過度分頁期間判斷,您可能需要將額外的實體記憶體新增至伺服器。 低記憶體會導致應用程式的虛擬位址空間與磁片之間的分頁增加。 如果分頁變得過多,磁片 I/O 將會增加並對整體系統效能造成負面影響。

如果...

  • 記憶體\可用 MBytes效能計數器的值很低,可能是因為系統記憶體限制或未釋放記憶體的應用程式。 針對執行的每個進程監視 Process\Working Set 效能計數器的值。 如果 進程\工作集 的值維持在高,即使進程沒有作用中,這可能表示進程未釋放記憶體,

  • Memory\Pages/sec效能計數器的值很高。 Memory\Pages Input/sec的平均值除以Memory\Page Reads/sec的平均值,會提供每個磁片讀取的頁數。 此值通常不應超過每秒五頁。 每秒大於五頁的值表示系統花費太多時間分頁,而且需要更多記憶體 (假設應用程式已優化) 。

測量記憶體瓶頸的效能計數器

下列效能計數器應該用來判斷您的系統是否遇到記憶體相關瓶頸:

  • Memory\Available Mbytes

    • 臨界值:一致值小於 20 到 25% 的已安裝 RAM 表示記憶體不足。

    • 重要性:這表示電腦上執行之進程的可用實體記憶體數量。 請注意,此計數器只會顯示最後觀察到的值。 這不是平均值。

  • Memory\Page Reads/sec

    • 臨界值:持續值超過五個,表示讀取要求發生大量分頁錯誤。

    • 重要性:此計數器表示進程的工作集太大,無法讓可用的實體記憶體分頁至磁片。 它會顯示讀取作業數目,而不需考慮每個作業中擷取的頁數。 較高的值表示記憶體瓶頸。

      如果頁面讀取作業的低速率與 實體磁片時間實體磁片平均高值一致,磁片 I/O 瓶頸條件可能存在。 如果佇列長度增加未伴隨頁面讀取速率的減少,記憶體瓶頸會因為實體記憶體不足而存在。

  • Memory\Pages/sec

    • 臨界值:持續值為 5 以上表示瓶頸。

    • 重要性:此計數器表示讀取頁面或寫入磁片的速率,以解決硬式分頁錯誤。 將 實體磁片\Avg.Disk sec/TransferMemory\Pages/sec 效能計數器的值相乘。 如果這些值的乘積超過 0.1,分頁會使用超過 10% 的磁片存取時間,這表示可用的實體記憶體不足。

  • Memory\Pool Nonpaged Bytes

    • 臨界值:監看 Memory\Pool Nonpaged Bytes 的值,以在系統啟動時從其值增加 10%。

    • 重要性:啟動時的值增加 10% 或更多,可能是記憶體流失的指示。

  • Server\Pool 非分頁失敗

    • 臨界值:一般非零值表示瓶頸。

    • 重要性:此計數器表示非分頁集區配置失敗的次數。 非分頁集區包含進程虛擬位址空間中的頁面,這些頁面不會交換至磁片上的頁面檔案,例如進程核心物件資料表。 非分頁集區的可用性會決定可以建立多少進程、執行緒和其他這類物件。 當非分頁集區的配置失敗時,這可能是因為進程中的記憶體流失,特別是處理器使用量並未隨之增加時。

  • 伺服器\集區分頁失敗

    • 臨界值:沒有特定值。

    • 重要性:此計數器表示分頁集區配置失敗的次數。 此計數器的正值表示電腦沒有足夠的實體記憶體,或 Windows 分頁檔案太小。

  • Server\Pool Nonpaged Peak

    • 臨界值:沒有特定值。

    • 重要性:這是伺服器保留供任何一點使用的非分頁集區中位元組數目上限。 它指出電腦應該擁有多少實體記憶體。 由於非分頁集區必須駐留在實體記憶體中,而且因為其他作業必須保留一些記憶體,因此電腦應該已安裝實體記憶體,這是此計數器所指出值的 4 倍。

  • Memory\Cache Bytes

    • 臨界值:沒有特定值。

    • 重要性:監視不同負載條件下的快取大小。 這個效能計數器的這個值表示靜態檔案快取的大小。 根據預設,此計數器會使用大約 50% 的可用記憶體,但如果可用的記憶體壓縮,則會減少,這會影響系統效能。

  • Memory\Cache Faults/sec

    • 臨界值:沒有特定值。

    • 重要性:此計數器指出作業系統在檔案系統快取中尋找資料的頻率,但找不到資料的頻率。 這個值應該越低越好。

  • Cache\MDL 讀取點擊 %

    • 臨界值:此值越高,檔案系統快取的效能就越好。 值應該盡可能接近 100%。

    • 重要性:此計數器提供記憶體描述元清單百分比 (MDL) 讀取要求至檔案系統快取,其中快取會直接傳回物件,而不需要從硬碟讀取。

  • Process\Working Set

    • 臨界值:沒有特定值。

    • 重要性:工作集是目前載入記憶體中的記憶體頁面集, (實體 + 虛擬) 。 如果系統有足夠的記憶體,它可以在工作集中維護足夠的空間,使其不需要執行磁片作業,即可將記憶體分頁至磁片。 不過,如果記憶體不足,系統會嘗試從進程中移除記憶體以減少工作集,這會導致分頁錯誤增加。 當分頁錯誤的速率增加時,系統會嘗試增加進程的工作集。 如果您觀察到工作集中的寬波動,則可能表示記憶體不足。 工作集中較高的值也可能是因為應用程式中有多個元件。 您可以使用全域組件快取中共用的元件來改善工作集。

解決記憶體瓶頸

如果您判斷記憶體是BizTalk Server環境中的瓶頸,請使用下列一或多個方法來解決瓶頸:

  • 如果您可以控制配置,請調整配置的記憶體數量。 例如,您可以針對BizTalk Server、ASP.NET 和SQL Server微調。

  • Increase the size of the Windows paging file and follow the steps in the “Configure the Windows PAGEFILE for optimal performance” section of Optimizing Operating System Performance.

  • 關閉未使用的服務。 停止您未定期使用的服務可節省記憶體,並改善系統效能。 如需詳細資訊,請參閱 優化作業系統效能的一節。

  • 移除不必要的通訊協定和驅動程式。 即使是閒置通訊協定,也會在分頁和非分頁式記憶體集區中使用空間。 驅動程式也會耗用記憶體,因此您應該移除不必要的記憶體。 如需詳細資訊,請參閱 優化作業系統效能的一節。

  • 在BizTalk Server環境中的電腦上安裝額外的實體記憶體。

注意

在 32 位系統上,如果使用 /3GB 參數,BizTalk 最多可以使用 2 GB 的記憶體,限制會增加到 3GB,且使用 BizTalk Server 2010 和更新版本。 如需記憶體使用量的詳細資訊,請參閱 Windows 版本的記憶體限制

網路 I/O 瓶頸

如果您有網路 I/O 瓶頸...

  • 網路介面\位元組總計/秒效能計數器的值超過可用網路頻寬的 80%。

  • Server\Bytes Total/sec效能計數器的值大於可用網路頻寬的 50%。

測量網路 I/O 瓶頸的效能計數器

下列效能計數器應該用來測量網路 I/O,並判斷您的系統是否遇到網路 I/O 相關瓶頸:

  • 網路介面\位元組總計/秒

    • 閾值:網路容量的持續性值超過 80%。

    • 重要性:此計數器會指出透過每個網路介面卡傳送和接收位元組的速率。 此計數器有助於判斷網路介面卡是否飽和,以及您是否應該新增一或多個網路介面卡來增加可用的網路頻寬。

  • 網路介面\Bytes Received/sec

    • 臨界值:沒有特定值。

    • 重要性:此計數器會指出透過每個網路介面卡接收位元組的速率。 使用此計數器的值,將傳入資料的速率計算為可用頻寬總計的百分比。 這有助於判斷用戶端上是否應該增加網路頻寬,以將資料傳送至BizTalk Server,或網路頻寬是否應該在BizTalk Server電腦上增加。

  • 網路介面\Bytes Sent/sec

    • 臨界值:沒有特定值。

    • 重要性:此計數器會指出透過每個網路介面卡傳送位元組的速率。 使用此計數器的值來計算傳出資料的速率,以總可用頻寬的百分比計算。 這可協助判斷BizTalk Server傳送資料至用戶端時,網路頻寬是否應該增加,或在接收來自BizTalk Server資料的用戶端電腦上增加網路頻寬。

  • Server\Bytes Total/sec

    • 閾值:網路容量超過 50% 的持續值。

    • 重要性:此計數器表示透過網路傳送和接收的位元組數目。 較高的值表示網路 I/O 瓶頸。 如果所有伺服器的 Bytes Total/sec 總和大致等於網路的最大傳輸速率,請考慮子網來改善效能。 如需有關子網以提升效能的詳細資訊,請參閱資料庫優化BizTalk Server子網一節。

解決網路 I/O 瓶頸

如果您判斷網路 I/O 是您環境中的瓶頸,請使用下列一或多個方法來解決瓶頸:

  • 請遵循 優化網路效能的一節中的建議。

  • 執行BizTalk Server環境中每部電腦上優化網路效能主題中所述的 Windows Powershell 網路優化腳本。

另請參閱

尋找並排除瓶頸