性能测试工具Iperf 验证SDN网络

1 实验目的

  • 掌握Iperf在Linux环境下的安装和常用命令行参数的含义
  • 熟悉Iperf应用实例
  • 掌握SDN网络中使用Iperf测试网络带宽等

2 实验原理

网络性能测试主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理、网络存在安全漏洞等原因,都会导致网络带宽利用率不高。要找到网络带宽利用率不高的原因,就需要对网络传输进行监控,此时就需要用到一些网络性能测试工具,而Iperf就是这样一款网络带宽测试工具。

3 实验任务

本实验在SDN网络环境中,使用Iperf测试数据层面两台相互通信的虚拟机之间的TCP和UDP带宽质量,提供网络延迟抖动、数据包丢失率等统计信息。

本实验基于两台虚拟机VM1、VM2(分别安装了OpenDaylight Helium版本和Mininet)进行模拟。在两台虚拟机建立通信以后,测试TCP吞吐量、UDP丢包和延迟。最后将视线转移到SDN上来,在Mininet中建立简单拓扑,使用Iperf测试TCP吞吐量。实验环境拓扑如下:

性能测试工具Iperf 验证SDN网络 图1

4 实验步骤

4.1 搭建环境

创建支持openflow1.3协议的mininet虚拟机和OpenDaylight Lithium版本虚拟机,启动实验和虚拟机。注意:为保证正常运行,内存至少选择4G;CPU最好选择2核或4核,方便后面的多线程测试。而我在这一步的时候选择了1核CPU,前期的实验并不影响,后期在多线程测试的时候我将再创建一个2核的虚拟机进行实验,所以为了避免麻烦,请大家在选择CPU内核的时候选2核或4核。

4.2 确保虚拟机间能相互通信

登录OpenDaylight虚拟机,虚拟机odl的IP:

虚拟机mininet的IP:

两台虚拟机能够互相通信:

4.3 测试单线程TCP吞吐量

步骤1:通过Iperf测试网络带宽利用率

1 分别在虚拟机odl和虚拟机mininet安装Iperf,安装命令

2 将虚拟机mininet作为服务器端,虚拟机odl作为客户端,进行带宽测试,测试结果如下:

可以看到Iperf默认的运行时间在10秒左右,网卡的带宽速率1.79Gbits/sec。

步骤2:添加“-t”和“-i”参数后的Iperf输出

Iperf提供很多参数,可以多角度、全方位地测试网络带宽利用率,例如,要改变Iperf运行的时间和输出频率,可以通过“-t”和“-i”参数来实现,如下图所示:

可以看到传输时间为30秒,输出频率为5秒的结果。带宽仍然保存在1.81Gbits/sec左右。

步骤3:Iperf客户端通过“-n”参数指定要传输的数据量

为了模拟大量的数据传输,也可以指定要发送的数据量,这可以通过“-n”参数来实现。在指定“-n”参数后,“-t”参数失效,Iperf在传输完毕指定大小的数据包后,自动结束,实验结果如下图所示:

4.4测试多线程TCP吞吐量

步骤1:创建虚拟机odl2,在上面搭建环境的时候有提到在进行多线程测试的时候,需要多核CPU才能看出实验效果,如果你在配置虚拟机odl的时候就是选择的多核CPU,那么跳过步骤1,进入步骤2。 登录odl2,安装Iperf(具体步骤同上)。测试单线程TCP吞吐量,结果如下:


步骤2:测试多线程吞吐量,这里线程数设置为2,实验结果如下:


由步骤1的3和步骤2对比来看,传输相同的5000M数据,多线程下消耗了39秒左右,单线程下消耗了18秒左右,由此可知,采用多线程不会提高程序的执行速度,反而会降低速度,但是对于用户来说,可以减少用户的响应时间。而多线程的传输速率为2.1Gbits/sec左右,低于单线程的2.2Gbits/sec左右,从这个结果看,多线程对网络传输性能没有提高。理论上多线程的传输性能应该比单线程的要好,但是也受具体的网络环境影响。

4.5测试UDP丢包和延迟

Iperf也可以用于UDP数据包吞吐量、丢包率和延迟指标,但是由于UDP协议是一个非面向连接的轻量级传输协议,并且不提供可靠的数据传输服务,因此,对UDP应用的关注点不是传输数据有多快,而是它的丢包率和延时指标。通过Iperf的“-u”参数即可测试UDP应用的传输性能,这里测试Iperf客户端传输100M的UDP数据包的输出结果:

这个输出结果过于简单,要了解更详细的UDP丢包和延时信息,可以在Iperf服务端查看,因为在客户端执行传输测试的同时,服务端也会同时显示传输状态,如下图所示:

图中,“Jitter”列表示抖动时间,也称为传输延迟,“Lost/Total Datagrams”列表示丢失的数据包和数据包数量,0%是平均丢包率。

4.6在Mininet中使用Iperf功能

步骤1:创建拓扑

1 在虚拟机mininet中创建拓扑,命令:

2 pingall验证连通正常。


步骤2:测试拓扑中主机间的带宽情况

1 在一台host上跑Iperf服务器,另一台host上跑Iperf客户端,查看带宽情况。

5 实验结论

本实验主要是通过实验平台,熟悉了网络性能测试工具Iperf的常用命令,根据实验测试SDN网络的性能。且在Mininet中,也能够通过实验Iperf命令查看拓扑中主机间通信的网络带宽。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/15088.html

分享到:
条评论

登录后才可以评论

SDNLAB君 发表于15-12-01
5