用开源工具完成网络性能监控
创始人
2024-03-24 16:21:05
0

【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 <
You will try $NO addresses
EOF
#color black_white
echo "press return to continue"
read test
while read ip_addr
do 
echo "We will try to test:$ip_addr"
nmblookup -A $ip_addr |grep  '<00> 
-         [B|M]'|awk '{print $1}' >>netbios_name
smbclient -I $ip_addr -M `nmblookup -A $ip_addr |grep  '<00> 
-         [B|M]'|awk '{print $1}'` << EOF
EOF
done < record.txt

尽管发送带个的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 独家特稿,转载请注明出处及作者!】

【编辑推荐】

  1. 有效提升网络运行性能的三种策略分析
  2. 专题:专题:网络性能测试

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...