最近公司某台伺服器的網路占用經常達到99%,好像最高就是這麼多。使得很多服務受到影響,下麵就分享一下如何通過windows自帶的一些工具排查網路高占用異常。 首先最簡單的是資源管理器,這個通過工具欄右鍵資源管理器,或者Ctrl+Alt+Del就可以調出來,然後點到聯網這一個標簽頁。在最下麵列出了機器 ...
最近公司某台伺服器的網路占用經常達到99%,好像最高就是這麼多。使得很多服務受到影響,下麵就分享一下如何通過windows自帶的一些工具排查網路高占用異常。
首先最簡單的是資源管理器,這個通過工具欄右鍵資源管理器,或者Ctrl+Alt+Del就可以調出來,然後點到聯網這一個標簽頁。在最下麵列出了機器的所有網卡,包括虛擬網卡,的線路速度和網路使用率。如下圖,可以看到,這台伺服器上有3個網路適配器,實際上這台伺服器上插了兩個網卡。
可以看到“本地連接”和“本地連接2”都有流量占用,這裡比較關心的是“本地連接”這個網卡上的應用占用流量情況。於是需要找出這兩張網卡對應的本地IP地址。
打開命令行控制台,輸入IPConfig即可列出本機所有網卡及IP地址信息,如下:
可以看到,“本地連接”這個網卡對應的IP地址是“192.168.1.8”這個地址。
接下來,我們可以使用命令查看那些應用連接到了“192.168.1.8”上。通過命令行:netstat -a -o -n |findstr 192.168.1.8
這裡第二列是所有從外部連到192.168.1.8這台機器的目標機器。我們可以從中找出已經的連接和未知的異常連接。可能這個還不夠清晰,沒有列出來所有那些app占用了多少帶寬,沒關係,接下來使用資源管理器能夠看得更清晰。
在命令行中輸入:perfmon –res 即可調出資源管理器,這是最方便的方式,這個命令也比較好記,perform monitor resource 拼在一起就是了。
在這個裡面,我們可以看到網路活動的進程,按照中位元組數排一下序,就可以看到那個占用的流量或者帶寬最大。
需要特別註意的是,這裡的“位元組/秒 Byte per second”和任務管理器裡面的“線路速度Mbps”有區別。線路速度裡面的bps表示“bits per second 位每秒”,1個位元組Byte=8位bits,所以100Mbps,換成我們平常能夠感知到的就是100/8=12.5MBps,就是12.5M位元組每秒,即12.5*10^7位元組每秒。這也是為什麼我們比如裝個寬頻百兆寬頻,最大下載速度可能只有12.5M每秒的原因,因為單位不一樣。
可以看到,僅java.exe這一項就占用了19.4*10^7位元組每秒的帶寬,其次是DateFeedGateway,占用了5*10^7位元組每秒帶寬(將近二分之一的本地連接帶寬量),接下來是兩個接近0.1*10^7位元組每秒帶寬,這個可以忽略不計,所以大頭是兩個,一個是java.exe一個是DateFeedGateway,所以下麵重點是找出這兩個進程分別是對應的那幾個應用。
在上圖中,勾選“java.exe” 和“DataFeedGateway.exe”前面的覆選框,我們僅僅查看著兩種應用的網路使用情況。可以看到第二項和第三項僅列出了這兩種應用的網路使用情況(截圖時網路占用已經降下來了,這裡僅為了演示)。
從中間第二個圖中可以看到,具體的連接到這台機器上的每台電腦的IP地址,總的收發位元組數。根據這裡的地址,基本上就能確定出來,是哪台機器上的java.exe或者DataFeedGateWay在占用網路帶寬了。
針對這台電腦的實際情況,可以知道,java對應的是這個伺服器上裝了一臺ActiveMQ,這個java.exe就是ActiveMQ使用到的java進程。DataFeedGateWay是伺服器上安裝的從ActiveMQ讀取數據的程式。Win-JAJ5TQN0C1J,是這台伺服器的電腦名稱。可以看到這兩個應用程式占了這台機器的大部分帶寬。具體的是哪個網卡,可以根據各自程式的配置監聽的IP地址就可以確定出來。
以上,就是在一個不需要安裝其他額外軟體的情況下,僅通過Windows自帶的應用查找網路帶寬占用情況的一例,希望對大家遇到類似問題提供一定幫助。