相信做性能测试的小伙伴应该都遇到过这样的问题,如果系统的性能出现问题了,但发现其它指标并没任何问题,那么这很可能是由于网络原因导致系统的性能出现问题。如何判断是否是由于网络的原因导致系统性能受影响呢?一个简单的办法是比较涉及网络的操作和与网络无关的操作,如果正在运行的程序在进行一定距离的远程读取和写入,而且运行很慢,但其它的操作是正常的。
那这很可能是网络问题造成的,一些潜在的网络瓶颈可能由以下因素造成:
客户端网络接口;
网络带宽;
网络拓扑结构;
服务器端网络接口;
服务器CPU负载;
服务器存储器使用状态;
服务器带宽;
配置效率低下;
ping命令,在下面这些情况下ping命令有帮助:
确定网络的状态和各种外部主机;
跟踪并隔离硬件和软件故障;
对网络的检测、测定和管理;
关于ping命令常用参数项如下:
-c
指定了信息包数,如果有IP记录参数,那么这个参数也有可用的,可以捕捉到ping信息包的最小值。
-s
指定信息包的长度,可以使用这个参数项来检查分段和重新组合。
-f
以10ms的间歇发送信息包或者在每次回应之后立即发送,只有根用户才可以使用这个参数项。
如图9-29所示的实例
图9-29 ping命令报告
注意: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命令:显示所有配置接口的状态,如图9-30所示。
图9-30 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命令:显示路由器的相关信息,如图9-31所示。
图9-31 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套接字连接,如图9-32所示。
图9-32 netstat -nr报告
本章主要给大家介绍了“性能测试之网络系统监控”的内容,大家觉得喜欢的话可以每天来这里和小编一起学习涨薪技能哦。(笔芯 )
附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。