mininet实验 设置带宽之简单性能测试

写在前面


本实验参考

  • 这个实验写到了Opendaylight,但是其实好像和ODL没什么关系,用到的还是本地控制器POX。
  • 值得注意的:实验之后一定要用,mn -c 命令清理进程。否则造成主机之间ping不通,端口占用等问题。
  • 虽然是个简单的实验,但是我在过程中通过请教学长,也对虚拟控制器的理解更加深入,也能更深入体会SDN中软件这两个字。

实验思路


  • Python脚本实现自定义拓扑
  • 设置链路的带宽、延迟及丢包率
  • iperf测试主机间的带宽性能

简而言之,一个脚本解决所有问题。本实验的核心也是读懂脚本而已。

实验拓扑



实验步骤


1.搭建环境

  • 安装mininet的虚拟机

2.创建脚本

  • 进入mininet/custom目录下,创建脚本mymininet.py并添加内容:
#!/usr/bin/python

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel

class SingleSwitchTopo(Topo):
    "Single switch connected to n hosts."
    def __init__(self, n=2, **opts):
        Topo.__init__(self, **opts)
        switch = self.addSwitch(‘s1‘)
        for h in range(n):
            #Each host gets 50%/n of system CPU
            host = self.addHost(‘h%s‘ % (h + 1), cpu=.5/n)
            #10 Mbps, 5ms delay, 0% Loss, 1000 packet queue
            self.addLink(host, switch, bw=10, delay=‘5ms‘, loss=0, max_queue_size=1000, use_htb=True)

def perfTest():
    "Create network and run simple performance test"
    topo = SingleSwitchTopo(n=4)
    net = Mininet(topo=topo,host=CPULimitedHost, link=TCLink)
    net.start()
    print "Dumping host connections"
    dumpNodeConnections(net.hosts)
    print "Testing network connectivity"
    net.pingAll()
    print "Testing bandwidth between h1 and h4"
    h1, h4 = net.get(‘h1‘, ‘h4‘)
    net.iperf((h1, h4))
    net.stop()

if __name__==‘__main__‘:
    setLogLevel(‘info‘)
    perfTest()
  • 这个脚本已经把所有的一切都写好了,包括链路的带宽设置,pingall指令,和iperf指令等。只要运行观察过程。
  • 理解脚本才是关键!

运行脚本

python mymininet.py
或者
chmod +x mymininet.py #添加文件执行属性
./mymininet.py

效果截图

实验小结和注意事项


  • 通过python脚本创建Mininet脚本,对设备链路间的带宽、延迟、丢包率等(bw=10,delay=‘5ms‘,loss=0,max_queue_size=1000,use_htb=True)进行设置 ,对设备有一个限制作用,且通过iperf来进行测试主机间的性能。
  • 注意事项:mn -c 清理进程

原文地址:https://www.cnblogs.com/031602523liu/p/8993218.html

时间: 2024-11-12 16:19:40

mininet实验 设置带宽之简单性能测试的相关文章

mininet实验三

mininet实验三-连接floodlight控制器 参考博客一 参考博客二 事先准备-floodlight安装 执行ifconfig命令获取floodlight所在服务器的IP地址. 1.启动floodlight java -jar target/floodlight.jar 浏览器中,输入floodlight ui界面地址:http://localhost:8080/ui/index.html 2.用python脚本通过mininet创建拓扑 切换到/home/mininet目录,请检查是否

mininet实验 动态改变转发规则实验

写在前面 本实验参考 POX脚本设置好控制器的转发策略,所以只要理解脚本. mininet脚本设置好拓扑和相关信息,所以也只要理解脚本. POX脚本目前基本看不懂. 本实验我学会了:POX控制器Web界面,第一次真正的看到了流表项. 实验拓扑 在该环境下,假设H1 ping H4,初始的路由规则是S1-S2-S5,一秒后,路由转发规则变为S1-S3-S5,再过一秒,规则变为S1-S4-S5,然后再回到最初的转发规则S1-S2-S5.通过这个循环调度的例子动态地改变交换机的转发规则. 实验步骤 1

Mininet实验 命令延伸实验扩展

本次实验尝试使用命令行.Python脚本编写.交互式界面创建自定义拓扑. 命令行创建拓扑 1.最小的网络拓扑,一个交换机下挂两个主机 1 sudo mn --topo minimal 2.每个交换机连接一个主机,交换机间相连接.本例:4个主机,4个交换机. 1 sudo mn --topo linear,4 3.每个主机都连接到同一个交换机上.本例:三个主机,一个交换机.  1 sudo mn --topo single,3 4.定义深度和扇形形成基于数的拓扑.本例:深度2,扇出2. 1 sud

Mininet实验 脚本实现控制交换机行为

实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换机的转发行为.在本实验中,使用Mininet基于python的脚本,调用“ovs-vsctl”命令直接控制Open vSwitch. 实验内容 一台交换机两台主机,实现从1端口进入的数据流转发到2端口,从2端口进入的数据流转发到1端口 mininet脚本代码如下: 1 from mininet.net import Mininet 2 from mininet.node import Node 3 from mininet.l

Greenplum 简单性能测试与分析

如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理速度和应用系统的可用性,使客户能同时得到更高的处理速度.更高的数据可用性和更大的数据集,是数据库系统面临的一个挑战. 通过TPC-H基准测试,可获得数据库单位时间内的性能处理能力,为评估数据库系统的现有性能服务水平提供有效依据,通过横向对比促进数据库系统的整体质量提升,能更好地在重大信息化工程中实现

Java实验--基于Swing的简单的歌曲信息管理系统(四)

原创不易,转载请注明出处. 上一篇<Java实验--基于Swing的简单的歌曲信息管理系统(三) >中,我们绘制了登录.注册和管理员主界面,本片主要讲解歌曲管理界面.第一次涉及到对表格的操作,参见的教材上的代码,具体代码如下: package test.swing; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.

snaic和tornado的简单性能测试

操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 tornado版本:6.0.2 snaic版本:19.9.0 CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 4核 之前一直使用tornado作为http相关python程序的框架,最近查资料发现新出的snaic性能很高,这里在同样硬件条件下使用ab进行简单的压测. 准备工作 安装apache ab工具: yum -y install httpd-tools 压测命

Mininet VM设置笔记

Mininet VM是为了加快Mininet安装,而且可以很容易在linux平台上运行. VM运行在Windows,Mac,Linux,通过VMware.VirtualBox,QEMU和KVM. 下载虚拟机之后,您将运行几个步骤来定制您的设置. 这不会花很长时间. 虚拟机设置 下载Mininet VM 下载Mininet VM https://github.com/mininet/mininet/wiki/Mininet-VM-Images. VM出来1 gb压缩和未压缩的~ 2 gb. 这是一

Mininet实验 MAC地址学习

实验目的 了解交换机的MAC地址学习过程. 了解交换机对已知单播.未知单播和广播帧的转发方式. 实验原理 MAC(media access control,介质访问控制)地址是识别LAN节点的标识.MAC对设备(通常是网卡)接口是全球唯一的,MAC地址为48位,用12个16进制数表示.前6个16进制数字由IEEE管理,用来识别生产商或者厂商,构成OUI(Organization Unique Identifier,组织唯一识别符).后6个包括网卡序列号,或者特定硬件厂商的设定值.对于一个网卡来说