上期我们讲到LoaRunner性能测试磁盘监控,这期我们讲LoaRunner性能测试网络监控。
网络监控
如果系统的性能出现问题了,但发现其它指标并没任何问题,那么这很可能是由于网络原因导致系统的性能出现问题。如何判断是否是由于网络的原因导致系统性能受影响呢?一个简单的办法是比较涉及网络的操作和与网络无关的操作,如果正在运行的程序在进行一定距离的远程读取和写入,而且运行很慢,但其它的操作是正常的,那这很可能是网络问题造成的,一些潜在的网络瓶颈可能由以下因素造成:
-
客户端网络接口;
-
网络带宽;
-
网络拓扑结构;
-
服务器端网络接口;
-
服务器CPU负载;
-
服务器存储器使用状态;
-
服务器带宽;
-
配置效率低下;
-
ping命令,在下面这些情况下ping命令有帮助:
-
确定网络的状态和各种外部主机;
-
跟踪并隔离硬件和软件故障;
-
对网络的检测、测定和管理;
关于ping命令常用参数项如下: -c 指定了信息包数,如果有IP记录参数,那么这个参数也有可用的,可以捕捉到ping信息包的最小值。 -s 指定信息包的长度,可以使用这个参数项来检查分段和重新组合。 -f 以10ms的间歇发送信息包或者在每次回应之后立即发送,只有根用户才可以使用这个参数项。 如图所示的实例。
注意:ping命令在网络上运行可能很困难,应该小心使用,连续执行ping命令只能由根用户操作。 在上面的这个例子中,1秒钟发送了1000个信息包,这个命令使用了IP和网络控制信息协议(ICMP)因而没有涉及到任何传输协议(UDP/TCP)和应用程序,测到的数据,比如往返时间,不会影响到总体的性能特征。 如果测试过程中发送大量的信息包到目的地址,需要考虑如下几个方面的内容:
-
发送信息包对系统来说,增加了负载;
-
使用netstat–i命令可以在试验过程中监测网络接口的状态,通过查看0errs的输出可以发现系统在发送过程中删除信息包的信息;
-
同时还需要监控其它的资源,如mbuf和发送/接收队列,很难在目标系统上增加一个大的负载,或者在其它的系统过载之前该系统就过载了;
考虑结果的相关性,如果想监控或测试的仅仅是一个目标系统,在其它的一些系统上做同样的测试进行比较,因为可能是网络或路由器出现故障。
Netstat命令可以用来显示网络的状态,一般来说,它是用来于故障识别作为性能评定用的,通常该命令可以确定网络上的流量,从而可以确定性能故障是否由于网络阻塞所引起。netstat命令显示关于配置网络接上的流量,主要包括以下几方面:
-
和套接字有关的任何一个协议控制块的地址及所有套接字的状态;
-
收到、发送出去和通信子系统中丢失的信息包数量;
-
每个接口的累计统计信息;
-
路由和它们的状态;
-
netstat命令格式如下:
-
netstat选项
常用选项的含义如下: -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断他。 -i 显示所有网络接口的信息,格式同“ifconfig–e”。 -n 以网络IP地址代替名称,显示出网络连接情形。 -r 显示核心路由表,格式同“route–e”。 -t 显示TCP协议的连接情况。 -u 显示UDP协议的连接情况。 -v 显示正在进行的工作。 netstat–in命令:显示所有配置接口的状态,如图所示。
MTU:最大传输单元,使用接口时可以传输的最大信息包大小,以字节为单位。RX和TX这两列表示的是已准确无误地收发了多少数据包( RX - OK / TX -OK)产生了多少错误(RX-ERR/TX-ERR)丢弃了多少包(RX-DRP/TX-DRP)由于误差而遗失了多少包(RX-OVR/TX-OVR)最后一列展示的是为这个接口设置的标记,在利用ifconfig显示接口设置时,这些标记都采用一个字母。说明如下:B:已设置了一个广播地址。L:该接口是个回送设备。M:接收所有数据包(混乱模式)。N:避免跟踪。O:在该接口上,禁用A R P。P:这是个点到点链接。R:接口正在运行。U:接口处于“活动“状态。netstat –nr命令:显示路由器的相关信息,如图所示。
输出结果中,第二列展示的是路由条目所指的网关,如果没有使用网关,就会出现一个星号(*)或0.0.0.0;第三列展示路由的概述,在为具体的IP地址找出最恰当的路由时,内核将查看路由表内的所有条目,在对找到的路由和目标路由比较之前,将对IP地址和genmask进行按位“和”计算;第四列显示了不同的标记,这些标记的说明如下:
-
Gateway:显示路由条目所指的网关,如果没有使用网关,就会出现一个星号(*)或0.0.0.;
-
Genmask:显示路由的概述,在为具体的IP地址找到最合适的路由时,内核将查看路由表内的所有条目,在对找到的路由和目标路由比较之前,将IP地址和Genmask进行按位“与”计算;
Flags:显示标记信息,常用标记如下:G:路由将采用网关;U:准备使用的接口处于“活动”状态;H:通过该路由,只能抵达一台主机;D:如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记;M:如果路由表条目已被ICMP重定向消息修改,就会设置这个标记;Iface:显示该连接所用的物理网卡,如eth0表示用第一张,eth1表示用第二张。如果需要显示活动或被动套接字的信息,可使用选项- t、- u、- w和-x,其分别表示TCP、UDP、RAW和UNIX套接字连接。如果还需要显示出等待连接(也就是说处于监听模式)的套接字,可以使用-a标记,这样就能得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。netstat -ta命令:显示TCP套接字连接,如图所示。