linux的netperf测试,linux下Netperf使用详解

linux的netperf测试,linux下Netperf使用详解

2023年7月23日发(作者:)

linux的netperf测试,linux下Netperf使⽤详解安装:tar zxf … && cd xxx./configure –prefix=/tools/netperf-2.4.1&& make&& make install⼿册服务器端启动⽅法 /tools/netperf-2.4.1/bin/netserver通过客户端测试测试批量(bulk)⽹络流量的性能批量数据传输典型的例⼦有ftp和其它类似的⽹络应⽤(即⼀次传输整个⽂件)。根据使⽤传输协议的不同,批量数据传输⼜分为TCP批量传输和UDP批量传输。1. TCP_STREAM/tools/netperf-2.4.1/bin/netperf -H 192.168.0.108 -l 60[-t TCP_STREAM]TCP STREAM TEST from 0.0.0.0 (0.0.0.0)port 0 AF_INET to 192.168.0.108 (192.168.0.108) port 0AF_INETRecv Send SendSocket Socket Message ElapsedSize Size Size Time Throughputbytes bytes bytes secs. 10^6bits/sec87380 16384 16384 60.01 88.91从netperf的结果输出中,我们可以知道以下的⼀些信息:1) 远端系统(即server)使⽤⼤⼩为87380字节的socket接收缓冲2) 本地系统(即client)使⽤⼤⼩为16384字节的socket发送缓冲3) 向远端系统发送的测试分组⼤⼩为16384字节4) 测试经历的时间为60.01秒5)吞吐量的测试结果为88.91Mbits/秒在缺省情况下,netperf向发送的测试分组⼤⼩设置为本地系统所使⽤的socket发送缓冲⼤⼩。TCP_STREAM⽅式下与测试相关的局部参数如下表所⽰:参数 说明-s size 设置本地系统的socket发送与接收缓冲⼤⼩-S size 设置远端系统的socket发送与接收缓冲⼤⼩-m size 设置本地系统发送测试分组的⼤⼩-M size 设置远端系统接收测试分组的⼤⼩-D对本地与远端系统的socket设置TCP_NODELAY选项通过修改以上的参数,并观察结果的变化,我们可以确定是什么因素影响了连接的吞吐量。例如,如果怀疑路由器由于缺乏⾜够的缓冲区空间,使得转发⼤的分组时存在问题,就可以增加测试分组(-m)的⼤⼩,以观察吞吐量的变化:./netperf -H 192.168.0.108 -l 60 — -m2048TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0AF_INET to 192.168.0.108 (192.168.0.108) port 0 AF_INETRecv Send SendSocket Socket Message ElapsedSize Size Size Time Throughputbytes bytes bytes secs. 10^6bits/sec87380 16384 2048 60.01 90.20在这⾥,测试分组的⼤⼩减少到2048字节,⽽吞吐量却没有很⼤的变化(与前⾯例⼦中测试分组⼤⼩为16K字节相⽐)。相反,如果吞吐量有了较⼤的提升,则说明在⽹络中间的路由器确实存在缓冲区的问题。2. UDP_STREAM/tools/netperf-2.4.1/bin/netperf -H 192.168.0.108 -l 60-t UDP_STREAMUDP UNIDIRECTIONAL SEND TEST from 0.0.0.0(0.0.0.0) port 0 AF_INET to 192.168.0.108 (192.168.0.108) port 0AF_INETSocket Message Elapsed MessagesSize Size Time Okay Errors Throughputbytes bytes secs # # 10^6bits/sec108544 65507 60.00 10998 0 96.06262144 60.00 3809 33.27UDP_STREAM⽅式的结果中有两⾏测试数据,第⼀⾏显⽰的是本地系统的发送统计,这⾥的吞吐量表⽰netperf向本地socket发送分组的能⼒。第⼆⾏显⽰的就是远端系统接收的情况测试请求/应答(request/response)⽹络流量的性能另⼀类常见的⽹络流量类型是应⽤在client/server结构中的request/response模式。在每次交易(transaction)中,client向server发出⼩的查询分组,server接收到请求,经处理后返回⼤的结果数据。1. TCP_RRTCP_RR⽅式的测试对象是多次TCPrequest和response的交易过程,但是它们发⽣在同⼀个TCP连接中,这种模式常常出现在数据库应⽤中。数据库的client程序与server程序建⽴⼀个TCP连接以后,就在这个连接中传送数据库的多次交易过程。/tools/netperf-2.4.1/bin/netperf -H192.168.0.108 -t TCP_RRTCP REQUEST/RESPONSE TEST from0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.108 (192.168.0.108)port 0 AF_INETLocal /RemoteSocket Size Request Resp. Elapsed Recv Size Size Time Ratebytes Bytes bytes bytes secs. per sec16384 87380 1 1 10.00 3328.9116384 87380Netperf输出的结果也是由两⾏组成。第⼀⾏显⽰本地系统的情况,第⼆⾏显⽰的是远端系统的信息。平均的交易率(transactionrate)为3328.91次/秒。注意到这⾥每次交易中的request和response分组的⼤⼩都为1个字节,不具有很⼤的实际意义。⽤户可以通过测试相关的参数来改变request和response分组的⼤⼩,TCP_RR⽅式下的参数如下表所⽰:参数 说明-r req,resp 设置request和reponse分组的⼤⼩-s size 设置本地系统的socket发送与接收缓冲⼤⼩-S size 设置远端系统的socket发送与接收缓冲⼤⼩-D对本地与远端系统的socket设置TCP_NODELAY选项通过使⽤-r参数,我们可以进⾏更有实际意义的测试:/tools/netperf-2.4.1/bin/netperf -H192.168.0.108 -t TCP_RR — -r 32,1024TCPREQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to192.168.0.108 (192.168.0.108) port 0 AF_INETLocal /RemoteSocket Size Request Resp. Elapsed Recv Size Size Time Ratebytes Bytes bytes bytes secs. per sec16384 87380 32 1024 10.00 1108.2116384 873802.TCP_CRR与TCP_RR不同,TCP_CRR为每次交易建⽴⼀个新的TCP连接。最典型的应⽤就是HTTP,每次HTTP交易是在⼀条单独的TCP连接中进⾏的。因此,由于需要不停地建⽴新的TCP连接,并且在交易结束后拆除TCP连接,交易率⼀定会受到很⼤的影响。/tools/netperf-2.4.1/bin/netperf -H192.168.0.108 -t TCP_CRR — -r 32,1024TCPConnect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INETto 192.168.0.108 (192.168.0.108) port 0 AF_INETLocal /RemoteSocket Size Request Resp. Elapsed Recv Size Size Time Ratebytes Bytes bytes bytes secs. per sec16384 87380 32 1024 10.00 793.0816384 87380交易率也明显的降低了,只有793.08次/秒。3.UDP_RRUDP_RR⽅式使⽤UDP分组进⾏request/response的交易过程。没有TCP连接所带来的负担/tools/netperf-2.4.1/bin/netperf -H192.168.0.108 -t UDP_RR — -r 32,1024UDPREQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to192.168.0.108 (192.168.0.108) port 0 AF_INETLocal /RemoteSocket Size Request Resp. Elapsed Recv Size Size Time Ratebytes Bytes bytes bytes secs. per sec108544 108544 32 1024 10.00 1139.40262144 262144#可能会受到⽹络中路由器或其它的⽹络设备对UDP采⽤了与TCP不同的缓冲区空间和处理技术影响,正常情况下会⾼于TCP_RR的值本⽂⾸先介绍⽹络性能测量的⼀些基本概念和⽅法,然后结合 netperf⼯具的使⽤,具体的讨论如何测试不同情况下的⽹络性能。在构建或管理⼀个⽹络系统时,我们更多的是关⼼⽹络的可⽤性,即⽹络是否连通,⽽对于其整体的性能往往考虑不多,或者即使考虑到性能的问题,但是却发现没有合适的⼿段去测试⽹络的性能。当开发出⼀个⽹络应⽤程序后,我们会发现,在实际的⽹络环境使⽤中,⽹络应⽤程序的使⽤效果不是很理想,问题可能出现在程序的开发上⾯,也有可能由于实际的⽹络环境中存在着瓶颈。⾯对这种问题,程序员⼀般会⼀筹莫展,原因就在于不掌握⼀些⽹络性能测量的⼯具。在本⽂中,⾸先介绍⽹络性能测量的⼀些基本概念和⽅法,然后结合 netperf⼯具的使⽤,具体的讨论如何测试不同情况下的⽹络性能。⽹络性能测试概述⽹络性能测量的五项指标测量⽹络性能的五项指标是:可⽤性(availability)响应时间(response time)⽹络利⽤率(network utilization)⽹络吞吐量(network throughput)⽹络带宽容量(network bandwidth capacity)1. 可⽤性测试⽹络性能的第⼀步是确定⽹络是否正常⼯作,最简单的⽅法是使⽤ ping 命令。通过向远端的机器发送 icmp echorequest,并等待接收 icmp echo reply 来判断远端的机器是否连通,⽹络是否正常⼯作。Ping 命令有⾮常丰富的命令选项,⽐如 -c 可以指定发送 echo request 的个数,-s 可以指定每次发送的ping 包⼤⼩。⽹络设备内部⼀般有多个缓冲池,不同的缓冲池使⽤不同的缓冲区⼤⼩,分别⽤来处理不同⼤⼩的分组(packet)。例如交换机中通常具有三种类型的包缓冲:⼀类针对⼩的分组,⼀类针对中等⼤⼩的分组,还有⼀类针对⼤的分组。为了测试这样的⽹络设备,测试⼯具必须要具有发送不同⼤⼩分组的能⼒。Ping命令的 -s 就可以使⽤在这种场合。2. 响应时间Ping 命令的 echo request/reply⼀次往返所花费时间就是响应时间。有很多因素会影响到响应时间,如⽹段的负荷,⽹络主机的负荷,⼴播风暴,⼯作不正常的⽹络设备等等。在⽹络⼯作正常时,记录下正常的响应时间。当⽤户抱怨⽹络的反应时间慢时,就可以将现在的响应时间与正常的响应时间对⽐,如果两者差值的波动很⼤,就能说明⽹络设备存在故障。3. ⽹络利⽤率⽹络利⽤率是指⽹络被使⽤的时间占总时间(即被使⽤的时间+空闲的时间)的⽐例。⽐如,Ethernet虽然是共享的,但同时却只能有⼀个报⽂在传输。因此在任⼀时刻,Ethernet 或者是 100% 的利⽤率,或者是 0%的利⽤率。计算⼀个⽹段的⽹络利⽤率相对⽐较容易,但是确定⼀个⽹络的利⽤率就⽐较复杂。因此,⽹络测试⼯具⼀般使⽤⽹络吞吐量和⽹络带宽容量来确定⽹络中两个节点之间的性能。4. ⽹络吞吐量⽹络吞吐量是指在某个时刻,在⽹络中的两个节点之间,提供给⽹络应⽤的剩余带宽。⽹络吞吐量可以帮组寻找⽹络路径中的瓶颈。⽐如,即使 client 和 server 都被分别连接到各⾃的 100MEthernet 上,但是如果这两个 100M 的Ethernet 被 10M 的 Ethernet 连接起来,那么 10M 的Ethernet 就是⽹络的瓶颈。⽹络吞吐量⾮常依赖于当前的⽹络负载情况。因此,为了得到正确的⽹络吞吐量,最好在不同时间(⼀天中的不同时刻,或者⼀周中不同的天)分别进⾏测试,只有这样才能得到对⽹络吞吐量的全⾯认识。有些⽹络应⽤程序在开发过程的测试中能够正常运⾏,但是到实际的⽹络环境中却⽆法正常⼯作(由于没有⾜够的⽹络吞吐量)。这是因为测试只是在空闲的⽹络环境中,没有考虑到实际的⽹络环境中还存在着其它的各种⽹络流量。所以,⽹络吞吐量定义为剩余带宽是有实际意义的。5. ⽹络带宽容量与⽹络吞吐量不同,⽹络带宽容量指的是在⽹络的两个节点之间的最⼤可⽤带宽。这是由组成⽹络的设备的能⼒所决定的。测试⽹络带宽容量有两个困难之处:在⽹络存在其它⽹络流量的时候,如何得知⽹络的最⼤可⽤带宽;在测试过程中,如何对现有的⽹络流量不造成影响。⽹络测试⼯具⼀般采⽤packet pairs 和 packet trains 技术来克服这样的困难。收集⽹络性能数据的⽅式当确定了⽹络性能的测试指标以后,就需要使⽤⽹络测试⼯具收集相应的性能数据,分别有三种从⽹络获取数据的⽅式:1. 通过snmp协议直接到⽹络设备中获取,如net-snmp⼯具2. 侦听相关的⽹络性能数据,典型的⼯具是tcpdump3. ⾃⾏产⽣相应的测试数据,如本⽂中使⽤的netperf⼯具

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690107197a306328.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信