1. 程式人生 > >通過資源監視器排查網路高佔用異常

通過資源監視器排查網路高佔用異常

原文: 通過資源監視器排查網路高佔用異常

   最近公司某臺伺服器的網路佔用經常達到99%,好像最高就是這麼多。使得很多服務受到影響,下面就分享一下如何通過windows自帶的一些工具排查網路高佔用異常。

  首先最簡單的是資源管理器,這個通過工具欄右鍵資源管理器,或者Ctrl+Alt+Del就可以調出來,然後點到聯網這一個標籤頁。在最下面列出了機器的所有網絡卡,包括虛擬網絡卡,的線路速度和網路使用率。如下圖,可以看到,這臺伺服器上有3個網路介面卡,實際上這臺伺服器上插了兩個網絡卡。

pic1

    可以看到“本地連線”和“本地連線2”都有流量佔用,這裡比較關心的是“本地連線”這個網絡卡上的應用佔用流量情況。於是需要找出這兩張網絡卡對應的本地IP地址。

    開啟命令列控制檯,輸入IPConfig即可列出本機所有網絡卡及IP地址資訊,如下:

pic2

    可以看到,“本地連線”這個網絡卡對應的IP地址是“192.168.1.8”這個地址。

    接下來,我們可以使用命令檢視那些應用連線到了“192.168.1.8”上。通過命令列:netstat -a -o -n |findstr 192.168.1.8

pic3

    這裡第二列是所有從外部連到192.168.1.8這臺機器的目標機器。我們可以從中找出已經的連線和未知的異常連線。可能這個還不夠清晰,沒有列出來所有那些app佔用了多少頻寬,沒關係,接下來使用資源管理器能夠看得更清晰。

     在命令列中輸入:perfmon –res 即可調出資源管理器,這是最方便的方式,這個命令也比較好記,perform monitor resource 拼在一起就是了。

    pic4

     在這個裡面,我們可以看到網路活動的程序,按照中位元組數排一下序,就可以看到那個佔用的流量或者頻寬最大。

    需要特別注意的是,這裡的“位元組/秒 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”前面的複選框,我們僅僅檢視著兩種應用的網路使用情況。可以看到第二項和第三項僅列出了這兩種應用的網路使用情況(截圖時網路佔用已經降下來了,這裡僅為了演示)。

    pic5

    從中間第二個圖中可以看到,具體的連線到這臺機器上的每臺計算機的IP地址,總的收發位元組數。根據這裡的地址,基本上就能確定出來,是哪臺機器上的java.exe或者DataFeedGateWay在佔用網路帶寬了。

  針對這臺計算機的實際情況,可以知道,java對應的是這個伺服器上裝了一臺ActiveMQ,這個java.exe就是ActiveMQ使用到的java程序。DataFeedGateWay是伺服器上安裝的從ActiveMQ讀取資料的程式。Win-JAJ5TQN0C1J,是這臺伺服器的計算機名稱。可以看到這兩個應用程式佔了這臺機器的大部分頻寬。具體的是哪個網絡卡,可以根據各自程式的配置監聽的IP地址就可以確定出來。

     以上,就是在一個不需要安裝其他額外軟體的情況下,僅通過Windows自帶的應用查詢網路頻寬佔用情況的一例,希望對大家遇到類似問題提供一定幫助。