本文可協助您識別持續高CPU使用量的原因。 請記住,您可以預期 CPU 使用量會隨著進程或應用程式提供要求而增加。 不過,如果您持續看到長時間的CPU使用量維持在較高層級(80% 或更高),系統或應用程式的效能將會受到影響。 因此,請務必了解持續高CPU使用量的原因,以便盡可能更正問題。
疑難排解工具
工作管理員
使用任務管理員來檢視CPU耗用量,以協助識別造成高CPU使用量的進程或應用程式:
- 選取 [ 開始],輸入 工作,然後在搜尋結果中選取 [任務管理器 ]。
- [ 任務管理員] 視窗預設為 [ 行程 ] 索引標籤。如果您在 [ 名稱 ] 資料列中看到單一進程名稱清單,您可以展開群組進程的任何實例。
- 選取 CPU 資料行標頭,依 CPU 使用量排序列表。 請確定標頭上出現的箭號指向向下,以將數據從最高到最低 CPU 耗用量排序。
如果進程可以停止,或可以停用相關的服務,請停止進程或服務。 然後,檢查這是否減輕問題。
資源監視器
使用資源監視器來檢視 CPU 耗用量:
選取 [ 開始],輸入 resmon,然後從搜尋結果中選取 [資源監視器 ]。
在 [資源監視器] 視窗中,選取 [CPU] 索引標籤。
注意
您可能必須最大化視窗才能看到所有資料。
選取 [ 平均 CPU] 資料行標頭,依整體 CPU 使用量來排序列表。 請確定標頭上出現的箭號指向向下,以將數據從最高到最低 CPU 耗用量排序。
如果任何進程對您的環境顯示高於預期的耗用量速率,當您嘗試判斷問題的原因時,請先考慮這些最上層進程。
處理序總管
[ 行程 總管] 工具提供您計算機上目前正在執行之進程的完整概觀,包括叫用進程的人員詳細數據,以及其耗用的系統資源總數。
如果您要驗證作業系統相關程式(例如 System),請遵循下列步驟:
- 以系統管理員身分執行進程總管。
- 以滑鼠右鍵按兩下進程,選取 [屬性],然後選取 [ 線程] 索引卷 標。
- 選取耗用高 CPU 的線程,然後選取 [堆棧 ] 以檢視正在執行的函式。
注意
若要取得更好的堆疊信息結果,請在進程總管中設定符號。 若要這樣做,請遵循下列步驟:
- 安裝 適用於 Windows 的偵錯工具。
- 以系統管理員身分執行進程總管。
- 選取 [ 選項] 功能表,然後選取 [ 設定符號]。
- 將Dbghelp.dll路徑變更為 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll,然後選取 [ 確定]。
常見的疑難排解案例
本節介紹使用高 CPU 使用量的不同進程案例。
唯一命名的單一Microsoft程式
- 收集效能監視器記錄。 使用 1 秒到 5 秒的快照間隔。
- 在發生高 CPU 使用量時收集 Windows Performance Recorder (WPR) 記錄檔。
注意
請勿讓此記錄檔長時間執行,因為檔案成長很快。 您應該只需要執行記錄幾分鐘(三到五個),才能擷取高 CPU 使用量。
- 在 回報的高 CPU 使用量期間,執行 ProcDump 工具兩次。 將運行時間隔開幾分鐘的空間。
Svchost 程式
如果 svchost 進程耗用高 CPU 使用量,而 svchost 進程包含多個服務,您必須中斷每個服務以在自己的 svchost 進程中執行,以判斷哪個服務造成高 CPU 使用量。 若要如此做,請執行下列步驟:
開啟提高權限的命令提示字元視窗。
如果每個服務是共用的 svchost 程式,請將其分成自己的 svchost 進程。 若要這樣做,請執行下列命令:
sc config <service name> type= own
注意
在此命令中,將服務名稱>取代<為實際的服務名稱。
重新啟動服務
在命令提示字元中,執行
tasklist /svc
以確認服務正在自己的 svchost 進程中執行。重要
問題解決之後,您必須返回步驟 2,並還原您所做的工作。
若要這樣做,請將 取代
sc config <service name> type= own
sc config <service name> type= share
為 命令中的 。 然後重新啟動服務。將每個服務分成自己的 svchost 程式之後,您現在必須識別哪個服務正在推動 CPU 使用量,或耗用高 CPU 使用量。
收集效能監視器記錄。 使用 1 秒到 5 秒的快照間隔。
記錄冒犯 Svchost 程式的 PID。
發生問題時收集 WPR 記錄檔。
在回報的高 CPU 使用量期間執行 ProcDump 兩次。 將運行時間隔開幾分鐘的空間。
多個具有相同名稱的進程實例
進程的數個實例可以共用相同的名稱。 例如,在遠端桌面通訊協定 (RDP) 伺服器上explorer.exe進程可能會發生此問題。
若要針對此問題進行疑難解答,請遵循下列步驟:
收集效能監視器記錄。 使用 1 秒到 5 秒的快照間隔。
發生問題時收集 WPR 記錄檔。
在回報的高 CPU 使用量期間執行 ProcDump 兩次。 將運行時間隔開幾分鐘的空間。
執行下列命令來記錄違規程式的 PID:
tasklist /v /fo csv >Running_Process.txt
第三方應用程式程式
如果第三個進程被識別為問題的原因,您必須連絡應用程式廠商,以瞭解個別進程為何導致計算機上的 CPU 使用量偏高。
資料收集
發生問題之前
您可以使用偵錯診斷 2.0 版本來進一步針對此問題進行疑難解答。 若要使用此工具,請遵循下列步驟。
安裝偵 錯診斷工具 v2 Update 2。
重要
在您安裝 2.0 版本之前,請先卸載所有其他版本的偵錯診斷工具。
選取 [開始],輸入性能監視器,然後按鼠右鍵 效能監視器 以系統管理員身分執行。
使用 效能監視器 收集性能計數器記錄並啟動記錄。
發生問題時
- 開啟 DebugDiag 2 集合。
- 選取 [ 行程 ] 索引卷標,以滑鼠右鍵按鍵按鍵對應至適當應用程式集區的背景工作進程,然後選取 [ 建立完整使用者傾印]。
- 當 CPU 使用量偏高時重複步驟 2 三次。
- 停止 效能監視器記錄。
- 使用 DebugDiag 壓縮數據。 若要這樣做,請選取 [工具>建立遞增封包檔案]。
建議您保留您收集的資訊,以防您必須連絡 Microsoft 支援服務。