Linux伺服器上監控網路頻寬的18個常用命令

來源:互聯網
上載者:User

標籤:http   io   ar   color   os   使用   sp   for   strong   

【51CTO精選譯文】本文介紹了一些可以用來監控網路使用方式的Linux命令列工具。這些工具可以監控通過網路介面傳輸的資料,並測量目前哪些資料所傳輸的速度。入站流量和出站流量分開來顯示。

一些命令可以顯示單個進程所使用的頻寬。這樣一來,使用者很容易發現過度使用網路頻寬的某個進程。

這些工具使用不同的機制來製作流量報告。nload等一些工具可以讀取"proc/net/dev"檔案,以獲得流量統計資訊;而一些工具使用pcap庫來捕獲所有資料包,然後計算總資料量,從而估計流量負載。

下面是按功能劃分的命令名稱。

  • 監控總體頻寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
  • 監控總體頻寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
  • 每個通訊端串連的頻寬使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
  • 每個進程的頻寬使用――nethogs

1. nload

nload是一個命令列工具,讓使用者可以分開來監控入站流量和出站流量。它還可以繪製圖表以顯示入站流量和出站流量,視圖比例可以調整。用起來很簡單,不支援許多選項。

所以,如果你只需要快速查看總頻寬使用方式,無需每個進程的詳細情況,那麼nload用起來很方便。

  1. $ nload 

安裝nload:Fedora和Ubuntu在預設軟體庫裡面就有nload。CentOS使用者則需要從Epel軟體庫獲得nload。

  1. # fedora或centos 
  2. $ yum install nload -y 
  3. # ubuntu/debian 
  4. $ sudo apt-get install nload 

2. iftop

iftop可測量通過每一個通訊端串連傳輸的資料;它採用的工作方式有別於nload。iftop使用pcap庫來捕獲進出網路介面卡的資料包,然後摘要資料包大小和數量,搞清楚總的頻寬使用方式。

雖然iftop報告每個串連所使用的頻寬,但它無法報告參與某個套按字串連的進程名稱/編號(ID)。不過由於基於pcap庫,iftop能夠過濾流量,並報告由過濾器指定的所選定主機串連的頻寬使用方式。

  1. $ sudo iftop -n 

n選項可以防止iftop將IP位址解析成主機名稱,解析本身就會帶來額外的網路流量。

 

安裝iftop:Ubuntu/Debian/Fedora使用者可以從預設軟體庫獲得它。CentOS使用者可以從Epel獲得它。

  1. # fedora或centos 
  2. yum install iftop -y 
  3. # ubuntu或 debian 
  4. $ sudo apt-get install iftop 

3. iptraf

iptraf是一款互動式、色彩鮮豔的IP區域網路監控工具。它可以顯示每個串連以及主機之間傳輸的資料量。下面是螢幕。

  1. $ sudo iptraf 

安裝iptraf:

  1. # Centos(基本軟體庫) 
  2. $ yum install iptraf 
  3. # fedora或centos(帶epel) 
  4. $ yum install iptraf-ng -y 
  5. # ubuntu或debian 
  6. $ sudo apt-get install iptraf iptraf-ng 

4. nethogs

nethogs是一款小巧的"net top"工具,可以顯示每個進程所使用的頻寬,並對列表排序,將耗用頻寬最多的進程排在最上面。萬一出現頻寬使用突然激增的情況,使用者迅速開啟nethogs,就可以找到導致頻寬使用激增的進程。nethogs可以報告程式的進程編號(PID)、使用者和路徑。

  1. $ sudo nethogs 

安裝nethogs:Ubuntu、Debian和Fedora使用者可以從預設軟體庫獲得。CentOS使用者則需要Epel。

  1. # ubuntu或debian(預設軟體庫) 
  2. $ sudo apt-get install nethogs 
  3. # fedora或centos(來自epel) 
  4. $ sudo yum install nethogs -y 

5. bmon

bmon(頻寬監控器)是一款類似nload的工具,它可以顯示系統上所有網路介面的流量負載。輸出結果還含有圖表和剖面,附有資料包層面的詳細資料。

安裝bmon:Ubuntu、Debian和Fedora使用者可以從預設軟體庫來安裝。CentOS使用者則需要安裝repoforge,因為Epel裡面沒有bmon。

  1. # ubuntu或debian 
  2. $ sudo apt-get install bmon 
  3. # fedora或centos(來自repoforge) 
  4. $ sudo yum install bmon 

bmon支援許多選項,能夠製作HTML格式的報告。欲知更多資訊,請參閱參考手冊頁。

6. slurm

slurm是另一款網路負載監控器,可以顯示裝置的統計資訊,還能顯示ASCII圖形。它支援三種不同類型的圖形,使用c鍵、s鍵和l鍵即可啟用每種圖形。slurm功能簡單,無法顯示關於網路負載的任何更進一步的詳細資料。

  1. $ slurm -s -i eth0 

安裝slurm

  1. # debian或ubuntu 
  2. $ sudo apt-get install slurm 
  3. # fedora或centos 
  4. $ sudo yum install slurm -y 

7. tcptrack

tcptrack類似iftop,使用pcap庫來捕獲資料包,並計算各種統計資訊,比如每個串連所使用的頻寬。它還支援標準的pcap過濾器,這些過濾器可用來監控特定的串連。

安裝tcptrack:Ubuntu、Debian和Fedora在預設軟體庫裡面就有它。CentOS使用者則需要從RepoForge獲得它,因為Epel裡面沒有它。

  1. # ubuntu, debian 
  2. $ sudo apt-get install tcptrack 
  3. # fedora, centos(來自repoforge軟體庫) 
  4. $ sudo yum install tcptrack 

8. vnstat

vnstat與另外大多數工具有點不一樣。它實際上運行後台服務/守護進程,始終不停地記錄所傳輸資料的大小。之外,它可以用來製作顯示網路使用曆史情況的報告。

  1. $ service vnstat status 
  2. * vnStat daemon is running 

運行沒有任何選項的vnstat,只會顯示自守護進程運行以來所傳輸的資料總量。

  1. $ vnstat 
  2. Database updated: Mon Mar 17 15:26:59 2014 
  3. eth0 since 06/12/13 
  4. rx:  135.14 GiB      tx:  35.76 GiB      total:  170.90 GiB 
  5. monthly 
  6. rx      |     tx      |    total    |   avg. rate 
  7.  
  8. ------------------------+-------------+-------------+------------- 
  9. Feb ‘14      8.19 GiB  |    2.08 GiB  |   10.27 GiB |   35.60 kbit/s 
  10. Mar ‘14      4.98 GiB  |    1.52 GiB  |    6.50 GiB |   37.93 kbit/s 
  11. ------------------------+-------------+-------------+------------- 
  12. estimated       9.28 GiB |    2.83 GiB  |   12.11 GiB | 
  13. daily 
  14. rx      |     tx      |    total    |   avg. rate 
  15. ------------------------+-------------+-------------+------------- 
  16. yesterday     236.11 MiB |   98.61 MiB |  334.72 MiB |   31.74 kbit/s 
  17. today    128.55 MiB |   41.00 MiB |  169.56 MiB |   24.97 kbit/s 
  18. ------------------------+-------------+-------------+------------- 
  19. estimated       199 MiB |      63 MiB |     262 MiB | 

想即時監控頻寬使用方式,請使用"-l"選項(即時模式)。然後,它會顯示入站資料和出站資料所使用的總頻寬量,但非常精確地顯示,沒有關於主機串連或進程的任何內部詳細資料。

  1. $ vnstat -l -i eth0 
  2. Monitoring eth0...    (press CTRL-C to stop) 
  3. rx:       12 kbit/s    10 p/s          tx:       12 kbit/s    11 p/s 

vnstat更像是一款製作曆史報告的工具,顯示每天或過去一個月使用了多少頻寬。它並不是嚴格意義上的即時監控網路的工具。

vnstat支援許多選項,支援哪些選項方面的詳細資料請參閱參考手冊頁。

安裝vnstat

  1. # ubuntu或debian 
  2. $ sudo apt-get install vnstat 
  3. # fedora或 centos(來自epel) 
  4. $ sudo yum install vnstat 

9. bwm-ng

bwm-ng(下一代頻寬監控器)是另一款非常簡單的即時網路負載監控工具,可以報告摘要資訊,顯示進出系統上所有可用網路介面的不同資料的傳輸速度。

  1. $ bwm-ng 
  2. bwm-ng v0.6 (probing every 0.500s), press ‘h‘ for help 
  3. input: /proc/net/dev type: rate 
  4. /         iface                   Rx                   Tx                T 
  5. ot================================================================= 
  6. ==           eth0:           0.53 KB/s            1.31 KB/s            1.84 
  7. KB             lo:           0.00 KB/s            0.00 KB/s            0.00 
  8. KB------------------------------------------------------------------------------------------------------------- 
  9. total:           0.53 KB/s            1.31 KB/s            1.84 
  10. KB/s 

如果控制台足夠大,bwm-ng還能使用curses2輸出模式,為流量繪製橫條圖。

  1. $ bwm-ng -o curses2 

安裝bwm-ng:在CentOS上,可以從Epel來安裝bwm-ng。

  1. # ubuntu或debian 
  2. $ sudo apt-get install bwm-ng 
  3. # fedora或centos(來自epel) 
  4. $ sudo apt-get install bwm-ng 

10. cbm:Color Bandwidth Meter

這是一款小巧簡單的頻寬監控工具,可以顯示通過諸網路介面的流量大小。沒有進一步的選項,僅僅即時顯示和更新流量的統計資訊。

  1. $ sudo apt-get install cbm 

11. speedometer

這是另一款小巧而簡單的工具,僅僅繪製外觀漂亮的圖形,顯示通過某個介面傳輸的入站流量和出站流量。

  1. $ speedometer -r eth0 -t eth0 

安裝speedometer

  1. # ubuntu或debian使用者 
  2. $ sudo apt-get install speedometer 

12. pktstat

pktstat可以即時顯示所有活動串連,並顯示哪些資料通過這些活動串連傳輸的速度。它還可以顯示連線類型,比如TCP串連或UDP串連;如果涉及HTTP串連,還會顯示關於HTTP請求的詳細資料。

  1. $ sudo pktstat -i eth0 -nt 
  2. $ sudo apt-get install pktstat 

13. netwatch

netwatch是netdiag工具庫的一部分,它也可以顯示本地主機與其他遠程主機之間的串連,並顯示哪些資料在每個串連上所傳輸的速度。

  1. $ sudo netwatch -e eth0 -nt 
  2. $ sudo apt-get install netdiag 

14. trafshow

與netwatch和pktstat一樣,trafshow也可以報告當前活動串連、它們使用的協議以及每條串連上的資料轉送速度。它能使用pcap類型過濾器,對串連進行過濾。

只監控TCP串連

  1. $ sudo trafshow -i eth0 tcp 
  2. $ sudo apt-get install netdiag 

15. netload

netload命令只顯示關於當前流量負載的一份簡短報告,並顯示自程式啟動以來所傳輸的總位元組量。沒有更多的功能特性。它是netdiag的一部分。

  1. $ netload eth0 
  2. $ sudo apt-get install netdiag 

16. ifstat

ifstat能夠以批處理式模式顯示網路頻寬。輸出採用的一種格式便於使用者使用其他程式或工具 + 生產力來記入日誌和分析。

  1. $ ifstat -t -i eth0 0.5 
  2. Time           eth0 
  3. HH:MM:SS   KB/s in  KB/s out 
  4. 09:59:21       2.62      2.80 
  5. 09:59:22       2.10      1.78 
  6. 09:59:22       2.67      1.84 
  7. 09:59:23       2.06      1.98 
  8. 09:59:23       1.73      1.79 

安裝ifstat:Ubuntu、Debian和Fedora使用者在預設軟體庫裡面就有它。CentOS使用者則需要從Repoforge獲得它,因為Epel裡面沒有它。

  1. # ubuntu, debian 
  2. $ sudo apt-get install ifstat 
  3. # fedora, centos(Repoforge) 
  4. $ sudo yum install ifstat 

17. dstat

dstat是一款用途廣泛的工具(用python語言編寫),它可以監控系統的不同統計資訊,並使用批處理模式來報告,或者將相關資料記入到CSV或類似的檔案。這個例子顯示了如何使用dstat來報告網路頻寬。

安裝dstat

  1. $ dstat -nt 
  2. -net/total- ----system---- 
  3. recv  send|     time 
  4. 0     0 |23-03 10:27:13 
  5. 1738B 1810B|23-03 10:27:14 
  6. 2937B 2610B|23-03 10:27:15 
  7. 2319B 2232B|23-03 10:27:16 
  8. 2738B 2508B|23-03 10:27:17 

18. collectl

collectl以一種類似dstat的格式報告系統的統計資訊;與dstat一樣,它也收集關於系統不同資源(如處理器、記憶體和網路等)的統計資訊。這裡給出的一個簡單例子顯示了如何使用collectl來報告網路使用/頻寬。

  1. $ collectl -sn -oT -i0.5 
  2. waiting for 0.5 second sample... 
  3. #         <----------Network----------> 
  4. #Time       KBIn  PktIn  KBOut  PktOut 
  5. 10:32:01      40     58     43      66 
  6. 10:32:01      27     58      3      32 
  7. 10:32:02       3     28      9      44 
  8. 10:32:02       5     42     96      96 
  9. 10:32:03       5     48      3      28 

安裝collectl

  1. # Ubuntu/Debian使用者 
  2. $ sudo apt-get install collectl 
  3. #Fedora 
  4. $ sudo yum install collectl 

結束語

上述幾個使用方便的命令可以迅速檢查Linux伺服器上的網路頻寬使用方式。不過,這些命令需要使用者通過SSH登入到遠程伺服器。另外,基於Web的監控工具也可以用來實現同樣的任務。

ntop和darkstat是面向Linux系統的其中兩個基本的基於Web的網路監控工具。除此之外還有企業級監控工具,比如nagios,它們提供了一批功能特性,不僅僅可以監控伺服器,還能監控整個基礎設施。

Linux伺服器上監控網路頻寬的18個常用命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.