用開源工具完成網絡性能監控
【51CTO.com獨家特稿】網絡管理員的工作是很復雜的,只要網絡出現異常,網絡管理員就會想救火隊員一樣忙,他們不僅要負責安裝、維護HUB、交換機、路由器、防火墻、IDS(IPS),而且要確保這些部件全部都能有效協同工作,當然完成這些工作是在一定預算范圍內完成。如今,經濟危機導致IT開支縮減,這種預算通常會比較少。過去在網絡性能工具上公司必須花費大量資金購買商業的監控軟件如Cisco works 2000 、Hp Open View。而本文的目標就是向大家介紹些用于幫助監視網絡并排除網絡故障的基于Unix/Linux的免費開源工具,助你一臂之力。
一、定義網絡性能
大多數網絡性能工具都是通過四個指標來度量網絡性能:可用性、響應時間、網絡利用率、網絡吞吐量
1.可用性:如果網絡不通了,那么你遇到的問題就不僅僅是網絡性能問題,測試網絡可用性最簡單的方法是用ping命令,盡管大多數網管員都知道什么是ping程序,不過很少有人知道使用ping去執行高級測試命令選項
例如下面的代碼可以自動搜索到當前網段所有在線的主機的NetBios名,并記錄到指定文本文件中。
#set -x cat /dev/null > record.txt nmblookup \*|grep '<00>'|awk '{print $1}' >record.txt #ping -c 2 -b 192.168.0.255|grep 64|awk '{print $4}'|sed -e 's/://g'>record.txt . /etc/bashrc NO=`cat record.txt|wc -l` cat /dev/null > result cat /dev/null > netbios_name color black_green cat < |
盡管發送帶個的ping數據包給遠程主機可以確定網絡路徑的可用性,但執行單一的ping命令本身不是網絡性能的***指示器。如何收集更多的信息才能確定客戶端和服務器之間的連接性?默認情況下,Unix的ping會持續發送ping給指定的遠程主機,直到管理員按下Ctrul+C,另外你還可以使用ping命令中的-c選項,制定特定數量的ping 包。再一個與度量可用性相關的問題是ping請求中數據包的大小。我們都知道Cisco交換機有三類數據包緩沖區:小型數據包、中型數據包、大型數據包。要測試這些網絡設備就要發出不同大小的數據包。在UNIX系統中默認情況下ping 工具使用的數據包大小是64字節,其中56字節是數據,其余8字節是ICMP 頭信息,你可以使用ping 加-c 開關來改變數據包大小,但別想試圖超過1500字節。
2.響應時間
為了個更精確描述網絡性能,必須了解數據包在網絡中的傳輸華樂多長時間,這就是所謂的響應時間。我們可以輕松的從ping 那里顯示輸出中看到每個發出的ping包,回程響應時間。以ms為單位,一般而言內部100兆LAN響應時間小于1ms,WAN連接,響應時間小于300ms,不過大家注意所有Windows系統所顯示的時間最短就是小于1ms,而Unix/Linux/Bsd系統則會精確到0.01ms。 在具有冗余路徑的網絡中,經常希望能確定數據包在給定時刻所經過的路徑,如果發現數據包沒有被發送到***效的路徑上,那么可以對route進行些簡單的配置,以縮短響應時間。這是我們可以使用traceroute命令,如下圖。
![]() |
圖1 |
上述圖像顯示了沿著通往目的地主機的路徑上,響應到期測試數據包的每個路由器。并顯示回程響應時間。
3.網絡利用率
計算網絡利用率要求知道在設定的期間內網絡所處理的網絡流量的字節數是多少,在計算全雙工連接的接口帶寬時,更準確的方法是分別測量輸入利用率和輸出利用率如下式所示: 輸入利用率=(ifInOctets×8×100)/((秒數) *IfSpeed)
輸出利用率=(ifOutOctets×8×100)/((秒數) *IfSpeed)
對于半雙工來說,在計算利用率時使用公式(ifInOctets+?ifOutOctets)/((秒數) IfSpeed)×8×100
ifInOctets 表示輸入流量的字節數。
ifOutOctets 表示輸出量的字節數。
IfSpeed 表示接口速率。
4.網絡吞吐量
確定了網絡吞吐量,網管員就可以找出影響客戶端與服務器之間給定網絡連接性能的網絡瓶頸。找出網絡瓶頸通常不會是件容易的事在復雜網絡中,客戶與服務器之間的路徑上可能會有多個網絡設備,取定網絡吞吐量最困難的部分就是計算機每個中間連接對整個端對端網絡連接的影響。
![]() |
圖2 |
#p#
二、觀察網絡流量
觀察在網絡上穿行的陸良可以獲得有關網絡健康 的大量信息。下面我在介紹一些unix主機上,捕獲流量的工具。Unix下***的數據包捕獲庫是libpcap, libpcap的英文意思是 Packet Capture library,***版本是libpcap-0.9.8。下載并安裝libpcap庫之后,你就可以用他來編譯要求采用混合模式訪問網絡的程序了。下面介紹兩個常用軟件。
1.Tcpdump程序
大多數 Unix分支都包括tcpdump,通常需要root權限才能運行。他的詳細使用方法可以在網上查到。
![]() |
圖3 |
2.Ethereal程序
Ethereal程序是一個圖形化的網絡監視程序,在unix和windows環境下都給可以運行,該程序實用libpcap庫或winpcap庫從主機網絡接口中捕獲數據包,他實用GTK+圖形庫生成自己的窗口和對話框,實用Glib庫為GTK提供附加的圖形庫,ucd-snmp庫提供SNMP解碼功能
![]() |
圖4 |
![]() |
圖5 |
【51CTO.COM 獨家特稿,轉載請注明出處及作者!】
【編輯推薦】