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