cpu占用率100%怎么解決

cpu占用率100%的解決方法:首先找到影響CPU使用率過高的具體進程;然后排查影響CPU使用率過高的進程是否正常;最后分類進行處理即可。

cpu占用率100%怎么解決

本文操作環境: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后,結合任務管理器判斷程序是否異常并定位程序的具體位置。
  1. 定位異常進程前,需要在任務管理器中依次單擊?查看(V)>?選擇列(S)
    定位問題
  2. 在彈出的框中選擇?PID(進程標識符,單擊?確定
    定位問題
  3. 在任務管理器的進程頁面中,將會增加PID這一項。單擊?PID,通過排序,找到之前資源監視器查看到的異常進程。右鍵單擊進程名稱,選擇打開文件位置,查案進程是不是惡意程序。

分析處理

CPU使用率過高的分析處理

您需要判斷影響CPU使用率過高的進程,屬于正常進程還是異常進程,并分類進行處理。

正常使用率過高的分析處理

正常情況下,當客戶頻繁訪問業務,或由于Windows自身服務(更新服務等)都可能會占用較高網絡流量和CPU 。針對正常進程導致的CPU使用率過高的情況,請按照如下順序逐一進行排查。

提示:Windows Server 2008或Windows Server 2012實例建議內存配置在2G或者2G以上。

  • 檢查后臺是否有執行Windows Update的行為。

  • 建議在服務器上安裝殺毒軟件,進行殺毒。如有安裝殺毒軟件,請檢查CPU飆高時,殺毒軟件是否在后臺執行掃描操作。如果可能,請升級殺毒軟件到最新版本,或者刪除殺毒軟件。

  • 檢查該ECS內應用程序是否有大量的磁盤訪問、網絡訪問行為或高計算需求。通過嘗試增配實例規格的方式,使用更多核數或內存的規格來解決資源瓶頸問題,如升級配置。

  • 若自身服務器配置較高,再去升級配置已經沒有太大意義。架構方面也并非是服務器配置越高就越好。此時,您需要嘗試進行應用分離,同時對相關程序進行優化。示例說明如下。

問題描述:當一個服務器上面同時部署了mysqlphp、Web等多種應用,即使配置比較高,也很容易出現資源負載異常。
解決方法:嘗試應用分離,通過不同的服務器去承載不同的應用。比如數據庫完全通過RDS來承載,減輕服務器本身的資源消耗和服務器內部大量的調用。而程序優化方面,您可以根據自身的配置狀況進行調整,比如調整連接數和緩存配置,以及Web和數據庫調用時的各項參數等。

異常使用率過高的分析處理

對于CPU異常使用率過高的情況,可能是被惡意病毒、木馬入侵導致的。有時三方惡意程序可能會利用操作系統的svchost.exe或者Tcpsvcs.exe來偽裝,引起高CPU的占用。您需要手動對異常進程進行查殺。

提示:若您無法判斷進程是否為病毒或木馬,建議將進程名稱在網上進行搜索后確認。另外,建議您進行進程刪除操作前,提前創建快照完成備份。

  • 使用商業版殺毒軟件,或使用微軟免費安全工具microsoft Safety Scanner,在安全模式下進行掃描殺毒,工具鏈接如下所示。
  • 定位問題
  • 運行Windows Update來安裝最新的微軟安全補丁。

  • 使用MSconfig禁用所有非微軟自帶服務驅動,檢查問題是否再次發生,具體操作請參考定位問題

  • 若服務器或站點遭受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使用率較高是正常現象,可以通過升級實例規格的方式以應對資源不足問題。關于如何升級實例規格,請參考如下文檔。

  • 升降配方式匯總

更多解決方法可參考如下Microsoft文檔。

更多信息

以下是關于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情況如下圖所示。
    定位問題

適用于

cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決cpu占用率100%怎么解決

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享