全部產品
Search
文件中心

:Windows執行個體CPU使用率較高問題的排查與處理

更新時間:Jun 10, 2025

在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使用率較高的問題。其他常見工具,請參見常見工具

  1. 通過VNC方式串連ECS執行個體。

    具體資訊,請參見通過VNC串連執行個體

  2. 在案頭底部單擊搜尋按鈕,並輸入資源監視器,單擊確定

  3. 資源監視器頁面中,查看各進程是否有CPU使用率過高的現象。

    image

  4. 針對佔用CPU資源較高的進程,查看對應的進程ID和進程的程式名。

  5. 開啟工作管理員,工作管理員的詳細資料頁簽下,找到之前資源監視器查看到的異常進程名和對應的PID。按右鍵進程名稱,選擇開啟檔案所在的位置(O),查看進程是否為惡意程式。

處理CPU使用率高的問題

常見CPU佔用較多問題的原因及解決方案如下。

問題現象

原因

解決方案

異常使用者程式或進程長時間佔用大量CPU資源,導致CPU使用率和負載較高。

該程式為異常程式或進程,運行時佔用過多CPU資源。

  • 通過資源監視器工具定位到佔用CPU資源較多的程式的PID,並通過資源監視器或工作管理員結束進程。

    警告

    在您結束進程前,請務必確保您瞭解該進程的相關資訊,避免因誤操作導致您的業務中斷。

  • 如果懷疑進程為惡意程式,您可以對其進行查殺,相關操作,請參見病毒查殺

正常使用者程式或進程長時間佔用大量CPU資源。導致CPU使用率和負載較高。

該程式為正常業務程式或進程,運行時佔用過多CPU資源。

如果執行個體出現CPU效能瓶頸,您可以結合實際情況選擇相應的處理策略。

單個業務程式或進程偶發CPU使用率及負載較高,但期間較短,且發生頻率較低。

業務程式需要最佳化,以解決特殊業務情境(加解密,高並發等)觸發的CPU資源佔用過高問題。

最佳化業務程式。

沒有單個程式或進程佔用大量CPU資源,但整體CPU使用率較高,負載較低。

當前執行個體的服務正常運行所需CPU資源效能大於執行個體的CPU效能。

如果執行個體出現CPU效能瓶頸,您可以選擇升級執行個體規格相關操作,請參見修改執行個體規格

常見工具

以下是關於Windows系統中定位CPU使用率過高問題工具的簡要說明。

工作管理員

工作管理員可以直觀查看應用程式列表,定位佔用CPU較高的應用程式,如下是工作管理員頁面。

image

在效能頁面檢查CPU使用率時,按右鍵CPU使用率圖示,單擊將圖形更改為(H) > 邏輯處理器(L)

如下圖顯示了2個邏輯CPU的使用率。

image

當單個進程的CPU使用率飆升至接近100%時,而其它進程的CPU使用率變化不大,則可能是網路I/O處理造成的。

資源監視器

資源監視器可以直觀查看CPU使用率,還可以通過控制代碼和模組搜尋對應的進程。

image

Process Explorer

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

如下圖是Process Explorer工具使用頁面。

image

效能監控器

效能監控器(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的情況。

相關文檔

如需解決Linux系統CPU使用率高的問題,請參見Linux執行個體CPU使用率或負載較高問題的排查及解決方案