共用方式為


針對 WSUS 伺服器上的高 CPU 使用量進行疑難解答

本文介紹數個程式,以針對 Windows Server Update Service (WSUS) 中的高 CPU 使用量進行疑難解答。

注意

主使用者:本文僅適用於技術支持專員和IT專業人員。 如果您要尋求問題的協助, 請詢問Microsoft社群

原始產品版本: Configuration Manager(最新分支)
原始 KB 編號: 4489045

如果 WSUS 資料庫 (SUSDB) 未清除,可能會發生高 CPU 使用量。 伺服器執行一段時間之後,WSUS 伺服器可能會有太多更新提供給用戶端。

在此情況下,如果發生失敗或安裝新的 WSUS 伺服器或不相關的問題會防止客戶端掃描幾天,則所有用戶端可能會開始掃描並繼續持續掃描,且永遠不會實際完成掃描或安裝更新。

若要修正此問題,您必須清除 WSUS 伺服器,並拒絕取代的更新。 依照下列順序中的步驟,作為每月清除例程。 不過,如果您要針對高 CPU 問題進行疑難解答,建議您先執行步驟 4,然後再執行步驟 3。 您應該延遲步驟 1 和 2,直到 CPU 使用量層級降低為止。

步驟 1:備份 WSUS 資料庫

備份 WSUS 資料庫可以稍微改善效能。

步驟 2:執行 WSUS 伺服器清除精靈

執行 WSUS 伺服器清除精靈可以改善資料庫效能。 不過,它不會減少用戶端正在掃描的更新數目。 此外,精靈可能需要數小時或數天的時間才能執行,而不需要解決問題。

步驟 3:重新編製 WSUS 資料庫的索引

如果 WSUS 資料庫已分散,重新編製索引,可以改善資料庫效能。 若要這樣做,請執行下列命令。

  1. statistics使用 FULLSCAN 選項更新 。

    Use <dbname>
    Go
    Exec sp_msforeachtable 'update statistics ? with fullscan'
    Go
    
  2. 重建索引。

    Use <dbname>
    Go
    Exec sp_msforeachtable 'DBCC DBREINDEX (''?'')'
    Go
    

步驟 4:拒絕取代的更新

拒絕取代的更新會立即減少正在掃描的更新數目。

若要拒絕取代的更新,或在 WSUS 應用程式集區回收太快的情況下執行任何 WSUS 動作,您可以先阻止用戶端連線到 WSUS 應用程式集區。 若要這樣做,請使用 WSUS 控制台聯機到 WSUS 伺服器,然後將 WSUS 伺服器與上游伺服器和 Configuration Manager 同步處理(如果使用的話)。 如果您使用 Configuration Manager,請務必同步處理至 Configuration Manager 控制台中最新版的更新,讓用戶端會看到 WSUS 有最新且有效的更新。

若要中斷用戶端連線,請使用下列其中一種方法。

方法 1:建立測試應用程式集區

  1. 以滑鼠右鍵按兩下 [網際網路資訊服務 (IIS) 管理員區域中的應用程式集區,然後選取 [新增應用程式集區] 以建立測試應用程式集區。

  2. 選取 [用戶端 Web 服務>管理應用程式>進階設定],然後將應用程式集區變更為您建立的測試應用程式集區。

方法 2:變更 WSUS 網站的埠

  1. 選取 [WSUS 系統管理網站>編輯系結]。

  2. 變更 WSUS 控制台以連線到新的埠、執行腳本,並與 USS 同步處理。

    注意

    此方法會導致與 Configuration Manager 同步處理失敗。

方法 3:使用防火牆規則封鎖所有用戶端 IP 位址,或只允許 USS 和站台伺服器連入連線

在用戶端與 WSUS 伺服器中斷連線之後,您可以使用 (and -exclusion period, if necessary) 參數來執行 PowerShell 腳本 -skipdecline ,以判斷可拒絕的已取代更新總數。 然後,使用 再次 -skipdecline 執行腳本,以實際拒絕更新。

在因逾時而無法執行 PowerShell 腳本的極端情況下,您可以在顯示所有更新時,將取代數據行新增至 WSUS 控制台,然後依照下列步驟手動拒絕更新:

  1. 開啟 Windows Update Services Microsoft Management Console (MMC)。
  2. 選取 [所有更新] 檢視。 若要這樣做,請將顯示設定為顯示 [已拒絕] 以外的 [任何] 的 [核准狀態],然後按兩下 [重新整理]。
  3. 以滑鼠右鍵按兩下資料行標頭,然後選取[ 取代]。
  4. 以滑鼠左鍵按兩下 [取代 ] 資料行,依取代排序。
  5. 選取並拒絕已取代的更新。

在有效更新減少到少於 7,000 個連線之後,通常可以解決效能問題(但偏好少於 5,000 個連線)。 您可能必須限制與 WSUS 系統管理網站的連線數天,讓用戶端完成所有掃描。 我們也建議您在拒絕取代的更新之後,重新編製資料庫索引。 如果您使用 Configuration Manager,則在用戶端未連線時,也請執行 WSUS 與 Configuration Manager 之間的同步處理。

完成這些步驟之後,如果 CPU 使用量仍然太高,您應該限制連線。 若要這樣做,請遵循下列步驟:

  1. 開啟 網際網路資訊服務 (IIS) 管理員>WSUS系統管理網站>管理網站>進階設定>限制>並行連線上限。

  2. 將值設定為 50100

  3. 在任務管理器中監視 W3Wp 進程,以及伺服器上的 CPU 總數。

  4. 開啟任務管理員 >資源監視器,並記下 WSUS 應用程式集區的 PID 。 如果您不確定哪個 w3wp 進程正在執行 WSUS 應用程式集區,您可以使用 Appcmd (方法 2) 輕鬆地識別 PID。

根據預設,PID 應該每 29 小時只變更一次。 如果變更頻率較高,則 WSUS 應用程式集區目前 CPU 和記憶體設定的連線限制可能太高。

監視穩定 w3wp 記憶體,以及小於 90% 的整體 CPU 使用量。 由於穩定狀態 CPU 和記憶體使用量降低,您可以慢慢增加 WSUS 系統管理網站的連線限制。 根據您處於何種情況,記憶體使用量可能需要數天的時間才能回到穩定狀態。 增加連線限制可能需要以小增量和數天的時間發生。

參考

更新星期二之後,WSUS 中的高 CPU/高記憶體