本文主要介紹Windows實例中帶寬使用率較高問題的排查及解決方法。
問題現象
Windows系統的ECS實例中帶寬使用率較高。
問題原因
帶寬使用率較高可能有以下原因。
您的正常應用業務訪問頻繁,占用較高帶寬。
惡意病毒、木馬引起的網絡流量。
有時第三方惡意程序可能會利用操作系統的svchost.exe或者Tcpsvcs.exe來偽裝,引起高帶寬的占用。
Windows自身服務可能會占用較高網絡流量,例如更新服務。
解決方案
步驟一:定位問題
微軟有多個工具可以定位帶寬使用率過高的問題,例如任務管理器、資源監視器(Resource Monitor)、性能監視器(Performance Monitor)、Process Explorer、Xperf(Windows Server 2008 以后),抓取系統Full Memory Dump進行檢查。在流量大的情況下,您還可以使用Wireshark抓取一段時間的網絡包,分析流量使用情況。
Windows Server 2008以上系統,通常使用系統自帶的資源監視器監控帶寬。
在桌面底部單擊開始菜單,選擇運行。
在運行框中輸入
perfmon -res
,單擊確定。在資源監視器頁面中,查看各進程是否有帶寬使用率過高的現象。
針對占用資源較高的進程,查看對應的進程ID和進程的程序名。
定位進程ID后,結合任務管理器判斷程序是否異常并定位程序的具體位置。
定位異常進程前,需要在任務管理器中依次單擊查看(V)> 選擇列(S)...。
在彈出的框中選擇PID(進程標識符),單擊確定。
在任務管理器的進程頁面中,將會增加PID這一項。單擊PID,通過排序,找到之前資源監視器查看到的異常進程。右鍵單擊進程名稱,選擇打開文件位置,查看進程是否為惡意程序。
步驟二:分析處理
判斷影響CPU使用率過高的進程屬于正常進程或是異常進程,并按照下述相應步驟處理。
可能原因 | 具體操作 |
正常進程 | 一般情況下,當頻繁訪問業務,或由于Windows自身服務(更新服務等)都可能會占用較高網絡流量和CPU 。 說明
|
異常進程 | 對于CPU異常使用率過高的情況,可能是被惡意病毒、木馬入侵導致的。有時三方惡意程序可能會利用操作系統的svchost.exe或者Tcpsvcs.exe來偽裝,引起高CPU的占用。您需要手動對異常進程進行查殺。 說明 若您無法判斷進程是否為病毒或木馬,建議將進程名稱在網上進行搜索后確認。另外,建議您進行進程刪除操作前,創建快照完成備份。具體操作,請參見創建一個云盤快照
|
示例說明
問題現象
Windows實例出現網絡流量較大的情況,即服務器網絡帶寬占用較高,如下圖所示。
問題原因
帶寬使用率較高可能有以下原因。
您的正常應用業務訪問頻繁,占用較高帶寬。
惡意病毒、木馬引起的網絡流量。
有時第三方惡意程序可能會利用操作系統的svchost.exe或者Tcpsvcs.exe來偽裝,引起高帶寬的占用。
Windows自身服務可能會占用較高網絡流量,例如更新服務。
解決方案
通過如下2種方法分析為何占用高流量。
使用Windows自帶工具資源監視器(Resource Monitor)監控實時流量。
在流量大的情況下,使用Wireshark工具抓取一段時間的網絡包,分析流量使用情況。
資源監視器
以Windows Server 2008 R2和Windows Server 2012 R2為例,說明如何使用資源監視器監控實時網絡流量。
遠程連接ECS登實例。
具體操作,請參見連接方式概述。
右鍵單擊任務欄空白處,選擇啟動任務管理器。
單擊性能,再單擊資源監視器(R)...。
在資源監視器窗口中,單擊網絡。
通過資源監視器窗口的網絡活動的進程、網絡活動、TCP連接、偵聽端口等信息,可以實時分析實例當前的網絡流量情況,找到占用流量高的進程進行分析。
Windows Server 2008 R2
Windows Server 2012 R2
分析處理。
如果該進程是正常業務進程,確實因為客戶端訪問量大造成帶寬占用高,請酌情考慮升級帶寬。
如果該進程是名稱可疑進程,請嘗試直接殺死進程,或者使用專業殺毒軟件進行殺毒后觀察實例情況。
Wireshark
Wireshark是常用的網絡分析工具,您可以在Windows實例上從Wireshark官網下載并安裝軟件。
執行如下步驟,使用Wireshark分析網絡流量。
遠程連接ECS登實例。具體操作,請參見連接方式概述。
啟動Wireshark,在工具欄中依次選擇Statistics>Conversations。
在Conversations頁面上,您可以看到所有網絡通信,從鏈路層、IP層、TCP層分別給出了流量的具體情況和通信兩端的流量情況。通過抓取一段時間的網絡包可以分析究竟是哪些連接、端口占用了較高的流量。