cpu佔用率100%的解決方法:先找到影響CPU使用率過高的具體進程;然後排查影響CPU使用率過高的進程是否正常;最後分類進行處理即可。
本文操作環境:Windows Server 2008系統、Dell G3電腦。
cpu佔用率100%怎麼解決?
概述
本文主要介紹Windows實例中CPU使用率較高問題的檢查及解決方法。
詳細資料
阿里雲提醒您:
- 如果您對實例或資料有修改、變更等風險操作,請務必注意實例的容災、容錯能力,確保資料安全。
- 如果您對實例(包含但不限於ECS、RDS)等進行設定與資料修改,建議提前建立快照或開啟RDS日誌備份等功能。
- 如果您在阿里雲平台授權或提交過登入帳號、密碼等安全訊息,建議您及時修改。
本文主要透過以下步驟來介紹。
定位問題。找到影響CPU使用率過高的具體進程。
分析處理。排查影響CPU使用率過高的進程是否正常,並分類進行處理。
- 對於正常進程:您需要對程式進行最佳化或升級伺服器設定。
- 對於異常進程:您可以手動對進程進行查殺,也可以使用第三方安全工具去查殺。
操作範例。介紹具體排查及解決方法的流程。
更多資訊。介紹排查工具的使用。
定位問題
微軟有多個工具可以定位CPU使用率過高的問題,例如工作管理員、資源監視器(Resource Monitor)、效能監視器(Performance Monitor)、 Process Explorer、Xperf(Windows server 2008 以後)、KernRate(Windows server 2003),抓取系統Full Memory Dump進行檢查。在流量大的情況下,您也可以使用Wireshark抓取一段時間的網路包,分析流量使用情況。
提示:Windows Server 2008以上系統,通常使用系統自帶的資源監視器監控CPU。
在桌面底部點選 #開始 選單,選擇 執行。
開啟執行方塊後,在方塊中輸入
perfmon -res
,並按一下 確定。
#在資源監視器頁面中,查看各行程是否有CPU使用率過高的現象。
#針對佔用資源較高的進程,查看對應的進程ID和進程的程序名。
- 定位進程ID後,結合任務管理器判斷程式是否異常並定位程式的特定位置。
- 定位異常進程前,需要在工作管理員中依序點選 查看(V)> 選擇欄位(S)。
- 在彈出的方塊中選擇 PID(進程識別碼),按一下 確定。
- 在任務管理器的進程頁面中,將會增加PID這一項。點選 PID,透過排序,找到先前資源監視器檢視到的異常進程。右鍵點選進程名稱,選擇開啟檔案位置,查案進程是不是惡意程式。
分析處理
CPU使用率過高的分析處理
您需要判斷影響CPU使用率過高的進程,屬於正常進程還是異常進程,並分類進行處理。
正常使用率過高的分析處理
正常情況下,當客戶經常存取業務,或由於Windows自身服務(更新服務等)都可能會佔用較高網路流量和CPU 。針對正常進程導致的CPU使用率過高的情況,請依照以下順序逐一進行檢查。
提示:Windows Server 2008或Windows Server 2012執行個體建議記憶體配置在2G或2G以上。
檢查後台是否有執行Windows Update的行為。
建議在伺服器上安裝防毒軟體,進行防毒軟體。如有安裝防毒軟體,請檢查CPU飆升時,防毒軟體是否在背景執行掃描操作。如果可能,請升級防毒軟體到最新版本,或移除防毒軟體。
檢查該ECS內應用程式是否有大量的磁碟存取、網路存取行為或高運算需求。透過嘗試增配執行個體規格的方式,使用更多核數或記憶體的規格來解決資源瓶頸問題,例如昇級配置。
若自身伺服器配置較高,再去升級設定已經沒有太大意義。架構方面也並非是伺服器配置越高越好。此時,您需要嘗試進行應用程式分離,同時對相關程式進行最佳化。範例說明如下。
解決方法:嘗試應用分離,透過不同的伺服器去承載不同的應用程式。例如資料庫完全透過RDS來承載,減輕伺服器本身的資源消耗和伺服器內部大量的呼叫。而程式最佳化方面,您可以根據自身的配置狀況進行調整,例如調整連線數和快取配置,以及Web和資料庫呼叫時的各項參數等。
異常使用率過高的分析處理
對於CPU異常使用率過高的情況,可能是被惡意病毒、木馬入侵導致的。有時三方惡意程式可能會利用作業系統的svchost.exe或Tcpsvcs.exe來偽裝,造成高CPU的佔用。您需要手動對異常進程進行查殺。
提示:若您無法判斷進程是否為病毒或木馬,建議將進程名稱在網路上搜尋後確認。另外,建議您進行進程刪除操作前,提前建立快照完成備份。
- 使用商業版防毒軟體,或使用微軟免費安全工具Microsoft Safety Scanner,在安全模式下進行掃描防毒,工具連結如下所示。
- https://www.microsoft.com/security/scanner/zh-cn/default.aspx
執行Windows Update來安裝最新的微軟安全補丁。
使用MSconfig停用所有非微軟自帶服務驅動,檢查問題是否再次發生,具體操作請參考如何在Windows系統中執行乾淨啟動。
若伺服器或網站遭受DDoS攻擊或CC攻擊等,短期內產生大量的存取需求。您可以登入雲端安全中心,查看雲盾中的防護DDoS攻擊是否調整好門檻,並確認是否開啟CC防護。如果攻擊沒有觸發到閾值,雲盾沒有清洗,可以聯繫售後協助開起清洗。
操作範例
CPU使用率較高的可能原因如下。
- 病毒木馬入侵。
- 第三方防毒軟體運作。
- 應用程式異常、驅動異常、高I/O使用率或高中斷處理的應用程式。
提示:在使用Windows Server 2012的1核心1GB規格的執行個體時,Windows Update服務會自動更新,執行個體的CPU使用率也會突然升高,這是正常現象。
解決方案
提示:本文大量引用Microsoft的官方文檔和工具鏈接,版權和所屬權歸Microsoft所有,並請充分考慮Microsoft Windows產品迭代或文件未及時更新可能帶來的問題。
CPU使用率較高時,檢查後台是否正在執行Windows Update的程序。
檢查防毒軟體在背景是否正在執行掃描操作。可以升級防毒軟體到最新版本,或刪除防毒軟體。
點選 執行,然後輸入 MSCONFIG,停用所有非Microsoft自帶服務驅動,然後檢查問題是否再次發生。相關參考文件如下。
#使用商業版防毒軟體或Microsoft安全掃描程式在安全模式下掃描殺毒。關於Microsoft安全掃描程序的參考文件如下。
#執行Windows Update安裝最新Microsoft安全性修補程式。
當ECS實例有大量的磁碟存取、網路存取和高運算需求時,CPU使用率較高是正常現象,可以透過升級實例規格的方式以應對資源不足問題。關於如何升級實例規格,請參考如下文件。
升降配方式總結
更多資訊
以下是關於Windows實例檢查工具推薦的相關內容。
任務管理器
- 直觀檢查應用程式列表,定位佔用CPU較高的應用程序,如下是任務管理器頁面。
- 在效能頁面檢查CPU使用率時,右鍵點選CPU使用率圖示,點選 將圖形改為 > 邏輯處理器。如下圖顯示了4個邏輯CPU的使用率。
- 當單一進程的CPU使用率飆升至接近100%時,而其它進程的CPU使用率變化不大,則可能是網路I/O處理造成的。
資源監視器
直覺檢查CPU使用率,也可以透過帳號和模組搜尋對應的進程。
Process Explorer
- Process Explorer是一款Microsoft Sysinternals工具,透過配置正確的Symbols,檢查對應應用程式的執行緒呼叫的Call Stack,以定位可能的問題驅動。下載Process Explorer工具連結如下。
- 如下是Process Explorer工具使用頁面。
效能監視器
- #效能監視器(Performance Monitor)是Microsoft專業收集各個元件效能計數器的工具。對於系統CPU資源消耗,有多個Counter來檢查。透過點選 開始 > 執行 > perfmon,開啟效能監視器。
- Performance有以下三個核心參數。其中
\Processor(_Total)\% Processor Time
是\Processor(*)\% User Time
與\Processor(*)\% Privileged Time
總和。\Processor(_Total)\% Processor Time
#\Processor(*)\% User Time
#\Processor(*)\% Privileged Time
-
#\Processor(*)\% Privileged Time
是應用程式在內核中執行系統呼叫(例如驅動、IRP,上下文切換等)操作的時間。如果作業系統花費多餘30%的時間在Privileged Time
,如下圖所示,則表示實例正在進行高I/O吞吐相關的操作。 - 當
% Privileged Time
#高時,需要進一步檢查% DPC Time
、% Interrupt Time
以及Context Switches/sec
的情況。- 高
% DPC Time
、% Interrupt Time
意味著未知裝置出現大量的操作或很差的效能問題,請參考下列文件。
- 高
Context Switches/sec
意味著有大量的執行緒處於Ready狀態,需要減少執行緒的數量解決問題。
- 高
-
% DPC Time
、% Interrupt Time
很高時,需使用Microsoft Xperf工具進一步分析,請參考下列文件使用XPerf工具。
- #Context Switch值很高時,請參考下列文件。
-
#\Processor(*)\% User Time
表示處理器用於執行程式程式碼的時間消耗,可以確定哪個應用程式或函數呼叫消耗了較多的時間。 - 高
User Time
情況如下圖所示。
適用於
- 雲端伺服器 ECS
以上是cpu佔用率100%怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器