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和進程的程序名。
您需要判斷影響CPU使用率過高的進程,屬於正常進程還是異常進程,並分類進行處理。
正常情況下,當客戶經常存取業務,或由於Windows自身服務(更新服務等)都可能會佔用較高網路流量和CPU 。針對正常進程導致的CPU使用率過高的情況,請依照以下順序逐一進行檢查。
提示:Windows Server 2008或Windows Server 2012執行個體建議記憶體配置在2G或2G以上。
檢查後台是否有執行Windows Update的行為。
建議在伺服器上安裝防毒軟體,進行防毒軟體。如有安裝防毒軟體,請檢查CPU飆升時,防毒軟體是否在背景執行掃描操作。如果可能,請升級防毒軟體到最新版本,或移除防毒軟體。
檢查該ECS內應用程式是否有大量的磁碟存取、網路存取行為或高運算需求。透過嘗試增配執行個體規格的方式,使用更多核數或記憶體的規格來解決資源瓶頸問題,例如昇級配置。
若自身伺服器配置較高,再去升級設定已經沒有太大意義。架構方面也並非是伺服器配置越高越好。此時,您需要嘗試進行應用程式分離,同時對相關程式進行最佳化。範例說明如下。
對於CPU異常使用率過高的情況,可能是被惡意病毒、木馬入侵導致的。有時三方惡意程式可能會利用作業系統的svchost.exe或Tcpsvcs.exe來偽裝,造成高CPU的佔用。您需要手動對異常進程進行查殺。
提示:若您無法判斷進程是否為病毒或木馬,建議將進程名稱在網路上搜尋後確認。另外,建議您進行進程刪除操作前,提前建立快照完成備份。
執行Windows Update來安裝最新的微軟安全補丁。
使用MSconfig停用所有非微軟自帶服務驅動,檢查問題是否再次發生,具體操作請參考如何在Windows系統中執行乾淨啟動。
若伺服器或網站遭受DDoS攻擊或CC攻擊等,短期內產生大量的存取需求。您可以登入雲端安全中心,查看雲盾中的防護DDoS攻擊是否調整好門檻,並確認是否開啟CC防護。如果攻擊沒有觸發到閾值,雲盾沒有清洗,可以聯繫售後協助開起清洗。
CPU使用率較高的可能原因如下。
提示:在使用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使用率,也可以透過帳號和模組搜尋對應的進程。
\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工具。 #\Processor(*)\% User Time
表示處理器用於執行程式程式碼的時間消耗,可以確定哪個應用程式或函數呼叫消耗了較多的時間。 User Time
情況如下圖所示。 以上是cpu佔用率100%怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!