• iperf3网络测试工具


    一、简介:

      iperf3是一个网络速度测试工具,支持IPv4与IPv6,支持TCP、UDP、SCTP传输协议,可在Windows、Mac OS X、Linux、FreeBSD等各种平台使用,是一个简单又实用的小工具。因我已配置好yum源,因此执行yum install iperf3即可安装。安装好后,我已看一下iperf的使用参数,如图:

    二、实验环境:

    在实际测试中我的服务器有万兆网卡,IP如下所示:

    Host177:100.192.168.177

    Host178:100.192.168.178

    Host179:100.192.168.179

    Host186:100.192.168.186

    三、测试过程

      在这次测试中主要进行tcp与udp的对比测试,在测试前先说明一下在iperf3中有几个参数在tcp环境与udp环境中的区别,也就是在测试中需要对此参数要给定内容,避免iperf工具使用其默认的值,主要几项如下:

    如图,参数若不指定-b带宽值会造成极大的区别,在测试环境中发现 -l 默认就使用128数值。

    接下来首先以Host179为服务器端(服务器端启动参数是没有区别的):

    以Host178为客户端进行tcp的测试(暂时不指定-l参数即缓冲区大小):

     

    因测试环境有万兆网卡,于是我在这里指定了带宽-b 为万兆(后面还会进行千兆测试,会出现一个较为奇怪的现象),传输内容大小为100G。

    再进行udp测试(暂时不指定-l参数即缓冲区大小):

    进行udp测试时候,仅是多了一个参数-u即可。

    下面进行千兆的测试,如下:

     

    将-b后面跟着的值调小,这里udp的测试同样进行此操作,这里就不列出图片了,接下来我们关注一下测试结果。

    四、测试结果

             经测试后,可观察客户端下方的打印结果,如下:

    tcp下以万兆带宽测试结果:

    ucp下以万兆带宽测试结果:

     

    tcp下以千兆带宽测试结果:

     

    ucp下以千兆带宽测试结果:

     

      通过观察此类结果可以清楚的发现在设定 –b 1000M (千兆)的时候,tcp和udp的传输100G文件所需时间相差不是很多,但当设定–b 10000M (万兆)的时候,两者相差的还是比较明显的,这也是前面提出的“奇怪的现象”。给人的感觉就是udp没有发挥万兆网卡的全部速率,在图中也有显示丢包率为51%。

      通过网上的资料查询得知,udp丢包率高可能为缓冲区buffer有限制导致的,因此我于是进行了如下测试:

    将udp缓冲区buffer调高,执行下面命令:

    CentOS 7中默认buffer大小为212992,我在后面增加了2个0,约为放大100倍,这两条命令在服务器端和客户端都执行,然后下面在执行udp测试命令:

     

    得出结果为:

     

    可以看出丢包率得到了明显的改善,但识别出的带宽仍为6500M左右,离万兆还有一定的距离。

    五、结论

        经过上网查询学习得知,在带宽测试中通常采取udp模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽(万兆)作为数据发送速率进行测试,这样可以大体得出实际带宽的极限值,在测试环境中的带宽为6500左右,这也同样解释了上文提到的奇怪现象,并且在做实验中一定要注意测试命令的默认参数值,比如在本次测试中的tcp与udp测试的-b和-l两个参数,在使用默认参数的时候还是有着巨大的区别。

  • 相关阅读:
    Python之路【第二篇】:Python基础(8)-Tuple元组
    Python之路【第二篇】:Python基础(7)-列表
    Python之路【第一篇】:Python基础(6)
    Python之路【第一篇】:Python基础(5)
    Python之路【第一篇】:Python基础(4)
    Python之路【第一篇】:Python基础(3)
    Python之路【第一篇】:Python基础(2)
    Python之路【第一篇】:Python基础(1)
    SQL Server优化50法
    四层和七层负载均衡的区别
  • 原文地址:https://www.cnblogs.com/hjc4025/p/10438028.html
Copyright © 2020-2023  润新知