定位問題
微軟有多個(gè)工具可以定位 CPU 和帶寬跑滿或跑高的問題,例如任務(wù)管理器,資源監(jiān)視器(Resource Monitor),性能監(jiān)視器(Performance Monitor), Process Explorer,Xperf (Windows server 2008 以后),抓取系統(tǒng) Full Memory Dump 檢查。在流量大的情況下,您還可以使用 Wireshark 抓取一段時(shí)間的網(wǎng)絡(luò)包,分析流量使用情況。
注意: Windows 2008 版以上,通常使用系統(tǒng)自帶的資源監(jiān)視器監(jiān)控 CPU 和帶寬。
操作步驟
-
在桌面底部單擊 開始 菜單,選擇 運(yùn)行。
-
打開運(yùn)行框后,在框中輸入 perfmon -res 并單擊 確定。
-
在 資源監(jiān)視器 頁(yè)面中,查看各進(jìn)程是否有 CPU 或帶寬跑滿/跑高的現(xiàn)象。
-
針對(duì)占用資源較高的進(jìn)程,查看對(duì)應(yīng)的進(jìn)程 ID 和進(jìn)程的程序名。
-
定位進(jìn)程 ID 后,結(jié)合任務(wù)管理器判斷程序是否異常并定位程序的具體位置。
-
定位異常進(jìn)程前,需要在任務(wù)管理器中選擇 查看(V) > 選擇列(S)… 。
-
在彈出的框中選擇 PID(進(jìn)程標(biāo)識(shí)符),單擊 確定。
-
任務(wù)管理器的 進(jìn)程 頁(yè)面中,將會(huì)增加 PID 這一項(xiàng)。
-
單擊 PID 項(xiàng),通過排序,找到之前資源監(jiān)視器查看到的異常進(jìn)程。右擊進(jìn)程名稱,選擇 打開文件位置,定位進(jìn)程是不是惡意程序。
-
CPU 和帶寬跑滿或跑高的分析處理
您需要判斷影響 CPU 和帶寬跑滿或跑高的進(jìn)程,屬于正常進(jìn)程還是異常進(jìn)程,并分類進(jìn)行處理。
正常跑滿或跑高的分析處理
正常情況下,當(dāng)客戶頻繁訪問業(yè)務(wù),或由于 Windows 自身服務(wù)(更新服務(wù)等)都可能會(huì)占用較高網(wǎng)絡(luò)流量和 CPU 。針對(duì)正常進(jìn)程導(dǎo)致的 CPU 和帶寬跑滿或跑高的情況,請(qǐng)按照如下順序逐一進(jìn)行排查。
注意: Windows 2008 / Windows 2012 服務(wù)器建議內(nèi)存配置在 2G 或者 2G 以上。
-
檢查后臺(tái)是否有執(zhí)行 Windows Update 的行為。
-
建議在服務(wù)器上安裝殺毒軟件,進(jìn)行殺毒。如有安裝殺毒軟件,請(qǐng)檢查 CPU 或帶寬飆高時(shí),殺毒軟件是否在后臺(tái)執(zhí)行掃描操作。如果可能,請(qǐng)升級(jí)殺毒軟件到最新版本,或者刪除殺毒軟件。
-
檢查該 ECS 內(nèi)應(yīng)用程序是否有大量的磁盤訪問/網(wǎng)絡(luò)訪問行為/高計(jì)算需求。通過嘗試增配實(shí)例規(guī)格的方式,使用更多核數(shù)/內(nèi)存的規(guī)格來解決資源瓶頸問題,如升級(jí)帶寬。
-
若自身服務(wù)器配置較高,再去升級(jí)配置已經(jīng)沒有太大意義。架構(gòu)方面也并非是服務(wù)器配置越高就越好。此時(shí),您需要嘗試進(jìn)行應(yīng)用分離,同時(shí)對(duì)相關(guān)程序進(jìn)行優(yōu)化。示例說明如下:
問題描述:當(dāng)一個(gè)服務(wù)器上面同時(shí)部署了 MySQL,PHP,Web 等多種應(yīng)用,即使配置比較高,也很容易出現(xiàn)資源負(fù)載異常。
解決方法:嘗試應(yīng)用分離,通過不同的服務(wù)器去承載不同的應(yīng)用。比如數(shù)據(jù)庫(kù)完全通過 RDS 來承載,減輕服務(wù)器本身的資源消耗和服務(wù)器內(nèi)部大量的調(diào)用。而程序優(yōu)化方面,您可以根據(jù)自身的配置狀況進(jìn)行調(diào)整,比如調(diào)整連接數(shù)和緩存配置,以及 Web 和數(shù)據(jù)庫(kù)調(diào)用時(shí)的各項(xiàng)參數(shù)等。
異常跑滿或跑高的分析處理
對(duì)于 CPU 和帶寬異常跑滿或跑高的情況,可能是被惡意病毒、木馬入侵導(dǎo)致的。有時(shí)三方惡意程序可能會(huì)利用操作系統(tǒng)的svchost.exe,或者 Tcpsvcs.exe來偽裝,引起高帶寬的占用。您需要手動(dòng)對(duì)異常進(jìn)程進(jìn)行查殺。
-
使用商業(yè)版殺毒軟件,或使用微軟免費(fèi)安全工具 Microsoft Safety Scanner,在安全模式下進(jìn)行掃描殺毒,鏈接如下:https://www.microsoft.com/security/scanner/zh-cn/default.aspx 。
-
運(yùn)行 Windows Update 來安裝最新的微軟安全補(bǔ)丁。
-
使用 MSconfig 禁用所有非微軟自帶服務(wù)驅(qū)動(dòng),檢查問題是否再次發(fā)生。
-
若服務(wù)器或站點(diǎn)遭受 DDOS 攻擊或 CC 攻擊等,短期內(nèi)產(chǎn)生大量的訪問需求。建議盡快核實(shí)是否開啟 CC 防護(hù)。