性能测试工具Iperf 验证SDN网络 | SDNLAB | 专注网络创新技术
SDN SD-WAN DPU NFV Cloud Edge Computing 5G IoT AI Network Security
性能测试工具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 搭建环境

步骤1:创建虚网,在首页单击“创建虚网”,本次实验虚网名为“Slice5”,虚网名只能包括数字、字母和下划线。

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

2 单击“下一步”,选择网络拓扑,再单击“下一步”,确认虚网清单。

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

3 单击“创建”,成功创建虚网。

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

步骤2:添加控制器

1 单击虚网名(这里是“Slice5”),进入“虚网详情”页。

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

2 单击“控制器”部分的“Firewall REST API实验 图24”按钮,请根据实际情况选择控制器。由于启动虚网必须要创建一个控制器,此处的控制器选择不影响实验结果。

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

3 单击“下一步”,选择控制器的配置。

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

4 单击“创建”,控制器添加成功。

步骤3:添加网关

1 单击“网关”部分的按钮,添加网关。

步骤4:创建两台虚拟机,这里取名为mininet和odl。

1 单击“虚拟机”部分的“Firewall REST API实验 图24”,创建虚拟机。

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

2 单击“下一步”,选择镜像,这里选择“mininet-OF13”。

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

3 单击“下一步”,选择配置。

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

4 单击“下一步”,填写基本信息。

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

5 单击“创建”,名为mininet的虚拟机创建成功。

6 按照创建名为mininet的虚拟机的方式再创建一台虚拟机。这里取名为“odl”,镜像选择odl_he(OpenDaylight氦版本),为保证正常运行,内存至少选择2G。注意:CPU最好选择2核或4核,方便后面的多线程测试。而我在这一步的时候选择了1核CPU,前期的实验并不影响,后期在多线程测试的时候我将再创建一个2核的虚拟机进行实验,所以为了避免麻烦,请大家在选择CPU内核的时候选2核或4核。

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

步骤5:启动虚网、网关和虚拟机

1 单击页面右上角的“Firewall REST API实验 图12”按钮,启动虚网,虚网启动成功后,控制器也会启动成功。

2 单击“网关”部分的“Firewall REST API实验 图12”按钮,启动网关。

3 选择“虚拟机”部分创建好的两台虚拟机,单击“Firewall REST API实验 图12”按钮启动。

全部启动好的状态如下:

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

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

步骤1:修改名为odl的虚拟机的IP。

1 由于名为odl的虚拟机创建的时候,选择的是控制器镜像,生成的IP可能与名为mininet的虚拟机是不同网段的,所以要对虚拟机odl的IP进行修改:选择虚拟机odl,单击“搭建Mininet环境实验 图12”远程登录虚拟机。

2 根据之前设置的用户名/密码登录,这里是root/123。

3 编辑/etc/network/interfaces文件,将静态IP注释掉,修改成DHCP模式,修改以后如下:

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

步骤2:重启虚拟机,验证通信正常。

1 修改成功后,reboot重启虚拟机。重启后,两虚拟机的IP就在同一网段了,能够互相通信。验证结果如下:
虚拟机odl的IP:

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

虚拟机mininet的IP:

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

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

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

4.3 测试单线程TCP吞吐量

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

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

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

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

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

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

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

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

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

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

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

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

4.4测试多线程TCP吞吐量

步骤1:创建虚拟机odl2

1 在上面搭建环境的时候有提到在进行多线程测试的时候,需要多核CPU才能看出实验效果,如果你在配置虚拟机odl的时候就是选择的多核CPU,那么跳过步骤1,进入步骤2。

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

2 登录odl2,修改静态IP为DHCP模式,reboot重启虚拟机,安装Iperf(具体步骤同上)。

3 测试单线程TCP吞吐量,结果如下:

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

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

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

由步骤1的3和步骤2对比来看,传输相同的1000M数据,多线程下消耗了35秒左右,单线程下消耗了24秒左右,由此可知,采用多线程不会提高程序的执行速度,反而会降低速度,但是对于用户来说,可以减少用户的响应时间。而多线程的传输速率为480Mbits/sec左右,高于单线程的350Mbits/sec左右,从这个结果看,多线程对网络传输性能提高不小。

4.5测试UDP丢包和延迟

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

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

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

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

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

4.6在Mininet中使用Iperf功能

步骤1:创建拓扑

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

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

2 pingall验证连通正常。

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

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

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

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

5 实验结论

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

weibo

微信公众号:搜索"SDNLAB"
或扫描上面的二维码。

Andretoto Andretoto Atatoto Atatoto Situs Toto Slot Thailand Toto Slot