在Windows系統中,可以通過工作管理員、資源監視器等工具查看CPU使用率。本文主要介紹Windows執行個體中CPU使用率較高問題的排查及解決方案。
問題現象
使用 Windows 系統的ECS執行個體時,出現如下現象。
系統運行卡頓、服務響應時間長度較長、應用效能下降等問題。
通過ECS控制台查看執行個體 CPU 使用率監控時,發現CPU使用率或者負載過高(參考值:當前CPU 使用率> 80%,可認為CPU使用率過高,當前負載值>0.5,可以認為負載值過高)。
收到CPU使用率或者負載超過設定閾值的警示資訊。
可能原因
CPU使用率較高可能有以下原因。
ECS執行個體遭到病毒木馬入侵。
ECS執行個體中第三方殺毒軟體運行佔用較高CPU資源。
ECS執行個體中應用程式異常、驅動異常、高I/O使用率或高中斷處理的應用程式。
排查步驟
使用資源監視器查看CPU使用率指標
在Windows執行個體中,可以通過工作管理員、資源監視器等工具定位CPU使用率過高的問題。本文以Windows Server 2022系統為例,介紹如何通過資源監視器定位CPU使用率較高的問題。其他常見工具,請參見常見工具。
通過VNC方式串連ECS執行個體。
具體資訊,請參見通過VNC串連執行個體。
在案頭底部單擊搜尋按鈕,並輸入
資源監視器,單擊確定。在資源監視器頁面中,查看各進程是否有CPU使用率過高的現象。

針對佔用CPU資源較高的進程,查看對應的進程ID和進程的程式名。
開啟工作管理員,工作管理員的詳細資料頁簽下,找到之前資源監視器查看到的異常進程名和對應的PID。按右鍵進程名稱,選擇開啟檔案所在的位置(O),查看進程是否為惡意程式。
處理CPU使用率高的問題
常見CPU佔用較多問題的原因及解決方案如下。
問題現象 | 原因 | 解決方案 |
異常使用者程式或進程長時間佔用大量CPU資源,導致CPU使用率和負載較高。 | 該程式為異常程式或進程,運行時佔用過多CPU資源。 |
|
正常使用者程式或進程長時間佔用大量CPU資源。導致CPU使用率和負載較高。 | 該程式為正常業務程式或進程,運行時佔用過多CPU資源。 | 如果執行個體出現CPU效能瓶頸,您可以結合實際情況選擇相應的處理策略。
|
單個業務程式或進程偶發CPU使用率及負載較高,但期間較短,且發生頻率較低。 | 業務程式需要最佳化,以解決特殊業務情境(加解密,高並發等)觸發的CPU資源佔用過高問題。 | 最佳化業務程式。 |
沒有單個程式或進程佔用大量CPU資源,但整體CPU使用率較高,負載較低。 | 當前執行個體的服務正常運行所需CPU資源效能大於執行個體的CPU效能。 | 如果執行個體出現CPU效能瓶頸,您可以選擇升級執行個體規格。相關操作,請參見修改執行個體規格。 |
常見工具
以下是關於Windows系統中定位CPU使用率過高問題工具的簡要說明。
工作管理員
工作管理員可以直觀查看應用程式列表,定位佔用CPU較高的應用程式,如下是工作管理員頁面。

在效能頁面檢查CPU使用率時,按右鍵CPU使用率圖示,單擊。
如下圖顯示了2個邏輯CPU的使用率。

當單個進程的CPU使用率飆升至接近100%時,而其它進程的CPU使用率變化不大,則可能是網路I/O處理造成的。
資源監視器
資源監視器可以直觀查看CPU使用率,還可以通過控制代碼和模組搜尋對應的進程。

Process Explorer
Process Explorer是一款Microsoft Sysinternals工具,通過配置正確的Symbols,檢查對應應用程式的線程調用的Call Stack,用以定位可能的問題驅動。下載Process Explorer工具,請參見Process Explorer。
如下圖是Process Explorer工具使用頁面。

效能監控器
效能監控器(Performance Monitor)是Microsoft專業收集各個組件效能計數器的工具。對於系統CPU資源消耗,有多個Counter來檢查。
Performance有如下三個核心參數。
\Processor(_Total)\% Processor Time:CPU執行非空閑線程的時間百分比。\Processor(_Total)\% Processor Time=\Processor(*)\% User Time+\Processor(*)\% Privileged Time.\Processor(*)\% User Time:表示處理器用於執行程式代碼的時間消耗,可以確定哪個應用程式或函數調用消耗了較多的時間。\Processor(*)\% Privileged Time:應用程式在核心中執行系統調用(例如驅動、IRP,環境切換等)操作的時間。如果作業系統花費多於30%的時間在Privileged Time,則說明執行個體進行中高I/O吞吐相關的操作。當
% Privileged Time很高時,需要進一步檢查% DPC Time、% Interrupt Time以及Context Switches/sec的情況。高
% DPC Time、% Interrupt Time表示未知裝置出現大量的操作或者很差的效能問題。Context Switch值很高時,說明核心在CPU上對進程或線程進行切換。更多詳情,請參見The Case of the 2 Million Context Switches和Mark Russinovich's The Case of the System Process CPU Spikes。Context Switches/sec值很高表示有大量的線程處於Ready狀態,需要減少線程的數量解決問題。
相關文檔
如需解決Linux系統CPU使用率高的問題,請參見Linux執行個體CPU使用率或負載較高問題的排查及解決方案。