网络测试性能网站(网络性能测试工具netperf)

欢迎关注我们,获取更多相关文章,现在小编就来说说关于网络测试性能网站?下面内容希望能帮助到你,我们来一起看看吧!

网络测试性能网站(网络性能测试工具netperf)

网络测试性能网站

欢迎关注我们,获取更多相关文章

1 网络性能测试概述

在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多,或者即使考虑到性能的问题,但是却发现没有合适的手段去测试网络的性能。

当开发出一个网络应用程序后,我们会发现,在实际的网络环境使用中,网络应用程序的使用效果不是很理想,问题可能出现在程序的开发上面,也有可能由于实际的网络环境中存在着瓶颈。面对这种问题,程序员一般会一筹莫展,原因就在于不掌握一些网络性能测量的工具。

在本文中,首先介绍网络性能测量的一些基本概念和方法,然后结合 netperf 工具的使用,具体的讨论如何测试不同情况下的网络性能。

2 网络性能测量的五项指标

可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughput) 网络带宽容量(network bandwidth capacity)

2.1 可用性

测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 Ping 命令。通过向远端的机器发送 icmp echo request,并等待接收 icmp echo reply 来判断远端的机器是否连通,网络是否正常工作。

5.5.1 TCP_RR

TCP_RR方式的测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中,这种模式常常出现在数据库应用中。数据库的client程序与server程序建立一个TCP连接以后,就在这个连接中传送数据库的多次交易过程。

#netperf -t TCP_RR -H 192.168.0.28

TCP REQUEST/RESPONSE TEST to 192.168.0.28

Local /Remote

Socket Size Request Resp. Elapsed Trans.

Send Recv Size Size Time Rate

bytes Bytes bytes bytes secs. per sec

16384 87380 1 1 10.00 9502.73

16384 87380

Netperf输出的结果也是由两行组成。第一行显示本地系统的情况,第二行显示的是远端系统的信息。平均的交易率(transaction rate)为9502.73次/秒。注意到这里每次交易中的request和response分组的大小都为1个字节,不具有很大的实际意义。用户可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:

参数 说明

-r req,resp 设置request和reponse分组的大小

-s size 设置本地系统的socket发送与接收缓冲大小

-S size 设置远端系统的socket发送与接收缓冲大小

-D 对本地与远端系统的socket设置TCP_NODELAY选项

通过使用-r参数,我们可以进行更有实际意义的测试:

#netperf -t TCP_RR -H 192.168.0.28 -- -r 32,1024

TCP REQUEST/RESPONSE TEST to 192.168.0.28

Local /Remote

Socket Size Request Resp. Elapsed Trans.

Send Recv Size Size Time Rate

bytes Bytes bytes bytes secs. per sec

16384 87380 32 1024 10.00 4945.97

16384 87380

从结果中可以看出,由于request/reponse分组的大小增加了,导致了交易率明显的下降。

注:相对于实际的系统,这里交易率的计算没有充分考虑到交易过程中的应用程序处理时延,因此结果往往会高于实际情况。

5.5.2 TCP_CRR

与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。

#netperf -t TCP_CRR -H 192.168.0.28

TCP Connect/Request/Response TEST to 192.168.0.28

Local /Remote

Socket Size Request Resp. Elapsed Trans.

Send Recv Size Size Time Rate

bytes Bytes bytes bytes secs. per sec

131070 131070 1 1 9.99 2662.20

16384 87380

即使是使用一个字节的request/response分组,交易率也明显的降低了,只有2662.20次/秒。TCP_CRR使用与TCP_RR相同的局部参数。

5.5.3 UDP_RR

UDP_RR方式使用UDP分组进行request/response的交易过程。由于没有TCP连接所带来的负担,所以我们推测交易率一定会有相应的提升。

#netperf -t UDP_RR -H 192.168.0.28

UDP REQUEST/RESPONSE TEST to 192.168.0.28

Local /Remote

Socket Size Request Resp. Elapsed Trans.

Send Recv Size Size Time Rate

bytes Bytes bytes bytes secs. per sec

65535 65535 1 1 9.99 10141.16

65535 65535

结果证实了我们的推测,交易率为10141.16次/秒,高过TCP_RR的数值。不过,如果出现了相反的结果,即交易率反而降低了,也不需要担心,因为这说明了在网络中,路由器或其它的网络设备对UDP采用了与TCP不同的缓冲区空间和处理技术。

5.6 Misc

这里好像没有提及到服务端怎样执行:

netserver -D -4 -L 0.0.0.0 -p 9991 # 服务端

netperf -l 60 -4 -f m -t TCP_CRR -H 10.20.216.249 -p 9991 -- -r 64,64 # 客户端

而且客户端和服务端都存在性能瓶颈:

需要使用多个客户端或多进程才能产生更大压力(特别是小包的情况下)

而且服务端瓶颈不一定是网卡,很多情况下CPU是瓶颈(特别是小包)

参考文献

http://www.netperf.org/netperf/NetperfPage.html

http://www.cs.kent.edu/~farrell/dist/ref/Netperf.html Section 8. Netperf examples 很不错!

http://www.ibm.com/developerworks/cn/linux/l-netperf/

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页