五款好玩又好用的Linux網(wǎng)絡(luò)測(cè)試和監(jiān)控工具
譯文【51CTO精選譯文】在這篇介紹幾款Linux網(wǎng)絡(luò)測(cè)試實(shí)用工具的文章中,我們使用Bandwidthd、Speedometer、Nethogs、Darkstat和iperf,跟蹤帶寬使用情況和網(wǎng)絡(luò)速度、查找網(wǎng)絡(luò)資源消耗大戶,以及測(cè)試性能。
Bandwidthd
Bandwidthd是一款好玩又好用的應(yīng)用程序,雖然自2005年以來就沒有更新過,但是它仍很管用,至少在本人的Kubuntu系統(tǒng)上是這樣。它以色彩鮮艷的漂亮圖形顯示了你的進(jìn)出帶寬使用情況,并且在網(wǎng)頁上按日、周、月和年加以統(tǒng)計(jì)。所以,你還需要Apache服務(wù)器,或另外某臺(tái)HTTP服務(wù)器。可以監(jiān)控單單一臺(tái)電腦,也可以監(jiān)控局域網(wǎng)上的每個(gè)人。如果你需要關(guān)注帶寬限量,這款優(yōu)秀的應(yīng)用程序可用于跟蹤每月帶寬使用情況。
圖1:漂亮的Bandwidthd圖形
Bandwidthd幾乎沒有任何說明文檔。man bandwidthd列出了其所有配置文件和目錄。它的Sourceforge頁面上更是內(nèi)容***。現(xiàn)在有兩個(gè)版本:bandwidthd和bandwidthd-pgsql。Bandwidthd每隔150秒生成靜態(tài)HTML頁面,而bandwidthd-pgsql在動(dòng)態(tài)PHP頁面上顯示了圖形和數(shù)據(jù)。網(wǎng)頁上寫道"兩個(gè)版本的可視化輸出結(jié)果很相似,但數(shù)據(jù)庫驅(qū)動(dòng)的系統(tǒng)允許用戶進(jìn)行搜索、過濾、監(jiān)測(cè)多個(gè)傳感器和創(chuàng)建自定義報(bào)表。"我認(rèn)為,如果你想要搜索、過濾、監(jiān)測(cè)多個(gè)傳感器或創(chuàng)建自定義報(bào)表,就得改動(dòng)PHP文件。在我的系統(tǒng)上安裝很容易,這歸功于Debian和Ubuntu程序包維護(hù)者。它創(chuàng)建了Apache配置,并安裝了PostgreSQL,然后我要做的就是打開Web瀏覽器,瀏覽到http://localhost/bandwidthd,除了在配置文件中外,該網(wǎng)址沒有記錄在任何地方,所以你***在這里聽說該網(wǎng)址。
相關(guān)鏈接:http://bandwidthd.sourceforge.net/
Speedometer
Speedometer在控制臺(tái)上顯示了實(shí)時(shí)圖形(所以你不需要Web服務(wù)器),顯示了數(shù)據(jù)在你的網(wǎng)絡(luò)連接上傳輸有多快,它還可以解答"我的硬盤速度有多快"這一問題。最簡(jiǎn)單的用法顯示了每秒收到或傳輸?shù)淖止?jié)數(shù)。這被稱為分路器(tap):
- $ speedometer -r eth0
你可以通過創(chuàng)建兩個(gè)分路器來監(jiān)測(cè)雙向流量:
- $ speedometer -r eth0 -t eth0
默認(rèn)是堆疊分路器。-c選項(xiàng)而是制作了漂亮的列,-k 256顯示了256種顏色,而不是默認(rèn)的16種顏色,如圖2所示。
- $ speedometer -r eth0 -c -t eth0
圖2:Speedometer以256種顏色和多列跟蹤進(jìn)出的流量
你可以通過使用dd,創(chuàng)建一個(gè)1GB大小的原始文件,測(cè)量硬盤的原始寫入速度,然后使用Speedometer,測(cè)量創(chuàng)建該原件文件需要多長(zhǎng)時(shí)間:
- $ dd bs=1000000 count=1000 if=/dev/zero of=testfile & speedometer testfile
更改count值,即可生成不同大小的文件;比如說,count=2000創(chuàng)建了一個(gè)2GB大小的文件。你還可以試著更改不同的數(shù)據(jù)塊大小(bs),看看這有沒有什么區(qū)別。記得完成后,務(wù)必要?jiǎng)h除testfile,除非你喜歡任由毫無用處的大文件躺在那里。
相關(guān)鏈接:http://www.linux.com/speedometer
Nethogs
Nethogs是一款簡(jiǎn)單的控制臺(tái)應(yīng)用程序,可顯示每個(gè)進(jìn)程的帶寬,所以你可以馬上看到誰在耗用網(wǎng)絡(luò)資源。最簡(jiǎn)單的調(diào)用指定了你的網(wǎng)絡(luò)接口,然后它既顯示了入站數(shù)據(jù)包,又顯示了出站數(shù)據(jù)包:
- $ sudo nethogs eth0
- NetHogs version 0.8.0
- PID USER PROGRAM DEV SENT RECEIVED
- 1703 carla ssh eth0 9702.096 381.697 KB/sec
- 5734 www-data /usr/bin/fie eth0 1.302 59.301 KB/sec
- 13113 carla ..lib/firefox/firefox eth0 0.021 0.023 KB/sec
- 2462 carla ..oobar/lib/foobar eth0 0.000 0.000 KB/sec
- ? root unknown TCP 0.000 0.000 KB/sec
- TOTAL 9703.419 441.021 KB/sec
使用-r選項(xiàng)顯示單單收到的數(shù)據(jù)包,使用-s選項(xiàng)查看單單發(fā)送的數(shù)據(jù)包。
相關(guān)鏈接:http://nethogs.sourceforge.net/
Darkstat
Darkstat是另一款基于Web的網(wǎng)絡(luò)監(jiān)控工具,不過它包括自己的嵌入式HTTP服務(wù)器,所以你就不需要Apache了。以網(wǎng)絡(luò)接口名稱作為唯一的選項(xiàng)來啟動(dòng)它:
- $ sudo darkstat -i eth0
然后打開Web瀏覽器,瀏覽到http://localhost:667,你會(huì)看到類似圖3的結(jié)果。
圖3:Darkstat的默認(rèn)顯示畫面
點(diǎn)擊自動(dòng)重裝按鈕,即可讓它實(shí)時(shí)更新。Hosts(主機(jī))選項(xiàng)卡顯示了你與相連接、你已連接了多長(zhǎng)時(shí)間,以及你們之間已傳送了多少數(shù)據(jù)(以字節(jié)數(shù)為單位)。
你可以將Darkstat作為守護(hù)程序來運(yùn)行,并且讓它在系統(tǒng)啟動(dòng)時(shí)開啟。這一步怎么做取決于你的Linux發(fā)行版以及所使用的初始化系統(tǒng)(Upstart、systemd、sysvinit和BSD init)。這方面你得自己搞清楚。
相關(guān)鏈接:http://unix4lyfe.org/darkstat/
iperf
緦的讀者肯定一直在想"怎么沒有iperf?"。好了,現(xiàn)在就來說說iperf。iperf可報(bào)告帶寬、延遲抖動(dòng)和數(shù)據(jù)報(bào)丟失等方面的情況。換句話說,它可以測(cè)試網(wǎng)絡(luò)鏈路質(zhì)量,而鏈路質(zhì)量對(duì)傳送音樂、視頻和視頻會(huì)話等流媒體來說很重要。你需要在想要測(cè)試的那條鏈路的兩頭都要安裝iperf:在這個(gè)例子中,兩頭分別是Studio和Uberpc。然后在一個(gè)主機(jī)上,在服務(wù)器模式下開啟iperf;在另一個(gè)主機(jī)上,在客戶機(jī)模式下運(yùn)行iperf。要注意:在客戶機(jī)上,你必須為服務(wù)器命名。下面是運(yùn)行測(cè)試的最簡(jiǎn)單方式:
- carla@studio:~$ iperf -s
- terry@uberpc:~$ iperf -c studio
- carla@studio:~$ iperf -s
- ------------------------------------------------------------
- Server listening on TCP port 5001
- TCP window size: 85.3 KByte (default)
- ------------------------------------------------------------
- [4] local 192.168.1.132 port 5001 connected with 192.168.1.182 port 32865
- [ID] Interval Transfer Bandwidth
- [4] 0.0-10.0 sec 1.09 GBytes 938 Mbits/sec
- terry@uberpc:~$ iperf -c studio
- ------------------------------------------------------------
- Client connecting to studio, TCP port 5001
- TCP window size: 22.9 KByte (default)
- ------------------------------------------------------------
- [3] local 192.168.1.182 port 32865 connected with 192.168.1.132 port 5001
- [ID] Interval Transfer Bandwidth
- [3] 0.0-10.0 sec 1.09 GBytes 938 Mbits/sec
這是單向的,即從服務(wù)器到客戶機(jī)。你可以從客戶機(jī)端測(cè)試雙向性能:
- terry@uberpc:~$ iperf -c studio -d
- ------------------------------------------------------------
- Server listening on TCP port 5001
- TCP window size: 85.3 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Client connecting to studio, TCP port 5001
- TCP window size: 54.8 KByte (default)
- ------------------------------------------------------------
- [5] local 192.168.1.182 port 32980 connected with 192.168.1.132 port 5001
- [4] local 192.168.1.182 port 5001 connected with 192.168.1.132 port 47130
- [ID] Interval Transfer Bandwidth
- [5] 0.0-10.0 sec 1020 MBytes 855 Mbits/sec
- [4] 0.0-10.0 sec 1.07 GBytes 920 Mbits/sec
上述那些就千兆以太網(wǎng)而言速度不錯(cuò),接近理論***速率,所以這告訴我們物理網(wǎng)絡(luò)處于良好狀態(tài)。當(dāng)然,實(shí)際性能會(huì)有所下降,因?yàn)榫W(wǎng)絡(luò)開銷大于這個(gè)簡(jiǎn)單測(cè)試。現(xiàn)在,不妨看一下延遲抖動(dòng)。使用Ctrl+c組合鍵,停止服務(wù)器運(yùn)行,然后用iperf -su重啟服務(wù)器。在客戶機(jī)上,試一試:
- $ iperf -c studio -ub 900m
-b 900m意味著,以每秒900兆比特的速度運(yùn)行測(cè)試,所以你需要針對(duì)自己的網(wǎng)絡(luò)調(diào)整這個(gè)參數(shù),并且測(cè)試不同的速度。良好的運(yùn)行速度如同這樣:
- [ ID] Interval Transfer Bandwidth Jitter Lost/Total
- Datagrams
- [ 3] 0.0-10.0 sec 958 MBytes 803 Mbits/sec 0.013 ms 1780/684936
- (0.26%)
- [ 3] 0.0-10.0 sec 1 datagrams received out-of-order
0.013毫秒抖動(dòng)是它能得到的最短延遲。超過1000毫秒,就會(huì)干擾音頻和視頻流傳送。0.26%的數(shù)據(jù)報(bào)丟失率也很低。如果丟失率更高,那樣數(shù)據(jù)包需要重新發(fā)送時(shí),會(huì)導(dǎo)致更長(zhǎng)的延遲。
有一個(gè)新版本的iperf,那就是iperf 3.0.1(http://code.google.com/p/iperf/)。有朝一日,這應(yīng)該會(huì)取代iperf2。新版本是從頭開始改寫的,所以它非常整潔,并不拙劣,它包括一個(gè)可用于其他程序的庫版本。新版本仍是個(gè)新興產(chǎn)品,所以預(yù)計(jì)會(huì)有不盡如人意的地方。
相關(guān)鏈接:http://iperf.sourceforge.net/
原文鏈接:http://www.linux.com/learn/tutorials/765381-five-funny-little-linux-network-testers-and-monitors