CN103023967B - 基于simics系统模拟器的云计算仿真系统及方法 - Google Patents

基于simics系统模拟器的云计算仿真系统及方法 Download PDF

Info

Publication number
CN103023967B
CN103023967B CN201210458664.3A CN201210458664A CN103023967B CN 103023967 B CN103023967 B CN 103023967B CN 201210458664 A CN201210458664 A CN 201210458664A CN 103023967 B CN103023967 B CN 103023967B
Authority
CN
China
Prior art keywords
packet
random number
network
simulation
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210458664.3A
Other languages
English (en)
Other versions
CN103023967A (zh
Inventor
陈浩
陈亮
唐业祎
王静
刘方磊
王若舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Research Institute of Posts and Telecommunications Co Ltd
Original Assignee
Wuhan Research Institute of Posts and Telecommunications Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Research Institute of Posts and Telecommunications Co Ltd filed Critical Wuhan Research Institute of Posts and Telecommunications Co Ltd
Priority to CN201210458664.3A priority Critical patent/CN103023967B/zh
Publication of CN103023967A publication Critical patent/CN103023967A/zh
Application granted granted Critical
Publication of CN103023967B publication Critical patent/CN103023967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于simics系统模拟器的云计算仿真系统及方法,涉及云计算仿真领域,该仿真系统包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,数据中心仿真单元模拟云计算数据中心的各种节点,网络仿真单元仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,终端群仿真单元模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块。本发明在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算平台。

Description

基于simics系统模拟器的云计算仿真系统及方法
技术领域
本发明涉及云计算仿真领域,特别是涉及一种基于simics系统模拟器的云计算仿真系统及方法。
背景技术
随着云计算技术的日益普及和大量工业化应用,云计算在实现服务的高可用性、处理能力的可扩展性等方面的优势越来越多地被业界认可。云计算系统庞大,节点众多,类型复杂,从云数据中心经过IP(Internet Protocol,网际协议)网络到海量的终端,整个网络场景的实际设备花费巨大,在经济上对众多中小云计算研究机构来说,是个沉重的负担。云计算仿真技术将逐渐成为云计算系统规划、设计和开发中的主流技术,因此如何实现云计算系统的仿真成为本领域亟待解决的技术难题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于simics系统模拟器的云计算仿真系统及方法,在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算平台。
本发明提供的基于simics系统模拟器的云计算仿真系统,包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,所述网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元;所述数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单元,均运行真实操作系统;
所述数据中心仿真单元,用于:模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点,数据中心仿真单元内部的各仿真节点之间互相连接,或者与网络仿真单元连接;
所述网络仿真单元,用于:仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,网络仿真单元基于真实的操作系统运行IP网络仿真模块或基于ns2的DelayBox模块;
所述终端群仿真单元,用于:模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块,终端群仿真单元基于真实的操作系统,单独运行压力测试工具Apache JMeter或基于ns2的终端群仿真模块,或同时运行压力测试工具Apache Jmeter和基于ns2的终端群仿真模块。
在上述技术方案中,所述网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能;IP网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布和二项分布,IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。
在上述技术方案中,所述IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块和数据包发送子模块,其中:
数据包接收子模块,用于:接收数据包,并发送到数据包处理子模块;
线程池维护子模块,用于:维护线程池;
线程池状态查询子模块,用于:查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块;
线程分配子模块,用于:收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块;
均匀分布随机数生成子模块,用于:收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,1)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块;
均匀分布随机数比较子模块,用于:收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果该均匀分布随机数≥丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块;
数据包处理子模块,用于:接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块;
包延迟随机数生成子模块,用于:收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布;
数据包发送子模块,用于:收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。
在上述技术方案中,所述IP网络仿真模块仿真IP网络传输性能的流程为:
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4;否则转到步骤S3;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5;
步骤S5、生成一个(0,1)均匀分布的随机数,转到步骤S6;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果是,转到步骤S8;否则,转到步骤S7;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤S10;
步骤S8、如果该均匀分布随机数≥丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布,转到步骤S9;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
在上述技术方案中,所述数据中心仿真单元还包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,运行真实的云计算数据中心业务和/或基于ns2的server业务。
在上述技术方案中,所述数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I1,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T1;
(3)创建标准仿真节点对象node1,配置server应用;
(4)连接仿真节点对象node1至代理对象T1;
(5)连接代理对象T1至网络设备对象I1;
(6)启动数据中心仿真单元的仿真。
在上述技术方案中,所述网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I2,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T2;
(3)创建DelayBox类型的仿真节点node2;
(4)连接仿真节点node2至代理对象T2;
(5)连接代理对象T2至网络设备对象I2;
(6)启动网络仿真单元的仿真。
在上述技术方案中,所述终端群仿真单元运行基于ns2的终端群仿真模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I3,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T3;
(3)创建终端群仿真clientCloud类型的仿真节点node3;
(4)连接仿真节点node3至代理对象T3;
(5)连接代理对象T3至网络设备对象I3;
(6)启动终端群仿真单元的仿真。
在上述技术方案中,所述真实操作系统包括MS-DOS、Windows、Vxworks、OSE、Solaris、FreeBSD、Linux、QNX和RTEMS。
本发明还提供一种基于上述云计算仿真系统的仿真IP网络传输性能的方法,包括以下步骤:
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4;否则转到步骤S3;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5;
步骤S5、生成一个(0,1)均匀分布的随机数,转到步骤S6;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果是,转到步骤S8;否则,转到步骤S7;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤S10;
步骤S8、如果该均匀分布随机数≥丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布,转到步骤S9;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
与现有技术相比,本发明的优点如下:
本发明提供了一个研究云计算的可行的低成本的解决方案,在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,可以真实运行、模拟和测试多种云计算平台,为云计算系统的规划设计提供客观、可靠的定量依据,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算系统,有良好的扩展性和实用价值。
附图说明
图1是云计算的网络场景示意图。
图2是本发明实施例中云计算仿真系统的系统框架图。
图3是本发明实施例中IP网络仿真模块仿真IP网络传输性能的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,云计算的整个网络场景包括云计算数据中心、IP网络以及海量的终端。云计算数据中心提供云服务和云应用,终端通过IP网络对这些云服务和云应用进行访问。
参见图2所示,为了仿真云计算的整个网络场景,本发明实施例提供一种基于simics系统模拟器的云计算仿真系统,包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元。数据中心仿真单元通过仿真云计算平台的数据中心的各个仿真节点来模拟数据中心的功能;网络仿真单元,用于仿真IP网络的传输性能;终端群仿真单元,用于模拟海量终端。
数据中心仿真单元和终端群仿真单元可以有多个,网络仿真单元只有一个。数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单元,均运行真实操作系统,例如MS-DOS、Windows、Vxworks、OSE、Solaris、FreeBSD、Linux、QNX和RTEMS等,所有仿真单元既可以运行在一台实际PC机上,也可以运行在多台PC机上,多台计算机可以同时运行simics系统模拟器,一个真实操作系统可以运行多个虚拟机。一个仿真单元只能选择在一台计算机上运行,不能同时在多台计算机上运行。
simics系统模拟器是一款高性能的系统模拟器,它提供了一个受控制的、确定性的、完全虚拟环境模拟平台,可以模拟单处理机系统和多处理机系统,为多种任务提供了一个普通的基本结构,包括微处理机设计、存储器分级体系设计、元件研制和测试、软件质量的自动化测试、虚拟样机、硬件软件同步虚拟,还有固件、驱动程序和操作系统的开发。simics系统模拟器可以模拟多种CPU和硬件,例如可以模拟Sun Blade 1500、ARM v6、Inter Pentium、MIPS 4K、ADMAthlon64等,可用于硬件和系统软件的评测。不仅如此,simics系统模拟器还可以同时模拟多台机器,而且这些机器通过一个虚拟的以太网链路连接在一起组成一个小网络环境。
数据中心仿真单元用于模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点等多种类型的仿真节点,数据中心仿真单元内部的各仿真节点之间可以互相连接,也可以与网络仿真单元连接。
ns2(Network Simulator version 2)是一种针对网络仿真技术、开放源码、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面,成为目前学术界广泛使用的一种网络模拟软件。
ns2网络仿真软件包括用于为终端提供服务的server软件和用于仿真网络传输性能的DelayBox软件,本发明实施例中扩展了基于ns2的用于仿真海量终端的终端群仿真clientCloud软件。云计算的仿真测试研究可以引入ns2网络仿真软件,降低仿真模型的精细度,提高仿真速度,在仿真精度和仿真速度上达到一个妥协。
数据中心仿真单元还可以包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,可以运行真实的云计算数据中心业务和/或基于ns2的server业务,运行基于ns2的server业务可通过降低仿真业务精细度来提高仿真速度,实际应用中需要根据具体需求来决定是否运行基于ns2的server业务。
数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server业务时,采用real-time scheduler(实时调度器)作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I1,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T1;
(3)创建标准仿真节点对象node1,配置server应用;
(4)连接仿真节点对象node1至代理对象T1;
(5)连接代理对象T1至网络设备对象I1;
(6)启动数据中心仿真单元的仿真。
网络仿真单元包括IP网络仿真模块和/或基于ns2的DelayBox模块,IP网络仿真模块、基于ns2的DelayBox模块均用于仿真IP网络的传输性能。网络仿真单元基于真实的操作系统,可以运行基于ns2的DelayBox模块,或者运行IP网络仿真模块,但是同一时间只能运行其中一个。
网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I2,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T2;
(3)创建DelayBox类型的仿真节点node2;
(4)连接仿真节点node2至代理对象T2;
(5)连接代理对象T2至网络设备对象I2;
(6)启动网络仿真单元的仿真。
网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能。IP网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布和二项分布等多种随机分布。从统计学角度对网络性能给予数学上的逼近,可以节省大量的仿真时间,对仿真的精确度影响也不大,在仿真速度和仿真精度的妥协上达到比较好的平衡点。IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。
IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块和数据包发送子模块,其中:
数据包接收子模块,用于:接收数据包,并发送到数据包处理子模块;
线程池维护子模块,用于:维护线程池;
线程池状态查询子模块,用于:查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块;
线程分配子模块,用于:收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块;
均匀分布随机数生成子模块,用于:收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,1)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块;
均匀分布随机数比较子模块,用于:收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果该均匀分布随机数≥丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块;
数据包处理子模块,用于:接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块;
包延迟随机数生成子模块,用于:收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布等;
数据包发送子模块,用于:收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。
参见图3所示,IP网络仿真模块仿真IP网络传输性能的流程为:
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4;否则转到步骤S3;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5;
步骤S5、生成一个(0,1)均匀分布的随机数,转到步骤S6;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果是,转到步骤S8;否则,转到步骤S7;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤S10;
步骤S8、如果该均匀分布随机数≥丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布等,转到步骤S9;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
终端群仿真单元用于模拟海量终端对云计算平台的访问,可以有多个。终端群仿真单元基于真实的操作系统,只能连接网络仿真单元,不能互相连接。终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真clientCloud模块,终端群仿真单元可以单独运行压力测试工具Apache JMeter,也可以单独运行基于ns2的、继承自ns2提供的client类的终端群仿真clientCloud模块,还可以同时运行压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块。基于ns2的终端群仿真clientCloud模块相比压力测试工具Apache JMeter,既提供了仿真多client的能力,又能简化仿真业务复杂度,提高仿真速度。
目前有很多压力测试工具,能模拟海量终端的访问。只要在单机上运行工具,就可以模拟大规模数量终端的访问,例如开源的JMeter。JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI(Common Gateway Interface,通用网关接口)脚本、Java对象、数据库,FTP(File Transfer Protocol,文件传输协议)服务器等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序返回了期望的结果,为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。JMeter可以用于对静态的和动态的资源(例如:文件、Servlet、Perl脚本、java对象、数据库和查询、FTP服务器等等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能,可以使用JMeter做性能的图形分析或在大并发负载测试服务器/脚本/对象。
基于ns2的终端群仿真clientCloud模块中的clientCloud类比client类多了两个参数,可以用于指定client的数量N(N为正整数)和client的IP地址池。运行基于ns2的终端群仿真clientCloud模块时,相当于启动了N个client,client的地址随机从指定的IP地址池中分配。
终端群仿真单元运行基于ns2的终端群仿真clientCloud模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I3,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T3;
(3)创建终端群仿真clientCloud类型的仿真节点node3;
(4)连接仿真节点node3至代理对象T3;
(5)连接代理对象T3至网络设备对象I3;
(6)启动终端群仿真单元的仿真。
本发明实施例中终端群仿真单元中的压力测试工具ApacheJmeter和/或基于ns2的终端群仿真clientCloud模块,通过网络仿真单元中的IP网络仿真模块或基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的MS-DOS、Windows、Vxworks、OSE、Solaris、FreeBSD、Linux、QNX和RTEMS等操作系统,可以运行两种业务,一种是真实业务,另一种是基于ns2的server业务,两种业务可以单独使用,也可以混合使用,在实际应用中可以根据具体需要灵活组合,具体组合方式有18种。
下面通过18个具体实施例分别进行说明。
实施例1~6:单独运行真实的云计算数据中心业务。
实施例1、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的MS-DOS操作系统,运行真实的云计算数据中心业务。
实施例2、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Windows操作系统,运行真实的云计算数据中心业务。
实施例3、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Vxworks操作系统,运行真实的云计算数据中心业务。
实施例4、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的OSE操作系统,运行真实的云计算数据中心业务。
实施例5、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Solaris操作系统,运行真实的云计算数据中心业务。
实施例6、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的FreeBSD操作系统,运行真实的云计算数据中心业务。
实施例7~12:单独运行基于ns2的server业务。
实施例7、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Linux操作系统,运行基于ns2的server业务。
实施例8、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的QNX操作系统,运行基于ns2的server业务。
实施例9、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的RTEMS操作系统,运行基于ns2的server业务。
实施例10、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的MS-DOS操作系统,运行基于ns2的server业务。
实施例11、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Windows操作系统,运行基于ns2的server业务。
实施例12、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Vxworks操作系统,运行基于ns2的server业务。
实施例13~18:同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例13、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的OSE操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例14、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Solaris操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例15、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的FreeBSD操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例16、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Linux操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例17、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的QNX操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例18、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的RTEMS操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种基于simics系统模拟器的云计算仿真系统,其特征在于:包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,所述网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元;所述数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单元,均运行真实操作系统;
所述数据中心仿真单元,用于:模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点,数据中心仿真单元内部的各仿真节点之间互相连接,或者与网络仿真单元连接;
所述网络仿真单元,用于:仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,网络仿真单元基于真实的操作系统运行IP网络仿真模块或基于ns2的DelayBox模块;
所述终端群仿真单元,用于:模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块,终端群仿真单元基于真实的操作系统,单独运行压力测试工具Apache JMeter或基于ns2的终端群仿真模块,或同时运行压力测试工具Apache Jmeter和基于ns2的终端群仿真模块。
2.如权利要求1所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能;IP网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布和二项分布,IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。
3.如权利要求2所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块和数据包发送子模块,其中:
数据包接收子模块,用于:接收数据包,并发送到数据包处理子模块;
线程池维护子模块,用于:维护线程池;
线程池状态查询子模块,用于:查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块;
线程分配子模块,用于:收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块;
均匀分布随机数生成子模块,用于:收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,1)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块;
均匀分布随机数比较子模块,用于:收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果该均匀分布随机数≥丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块;
数据包处理子模块,用于:接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块;
包延迟随机数生成子模块,用于:收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布;
数据包发送子模块,用于:收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。
4.如权利要求3所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述IP网络仿真模块仿真IP网络传输性能的流程为:
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4;否则转到步骤S3;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5;
步骤S5、生成一个(0,1)均匀分布的随机数,转到步骤S6;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果是,转到步骤S8;否则,转到步骤S7;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤S10;
步骤S8、如果该均匀分布随机数≥丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布,转到步骤S9;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
5.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述数据中心仿真单元还包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,运行真实的云计算数据中心业务和/或基于ns2的server业务。
6.如权利要求5所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I1,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T1;
(3)创建标准仿真节点对象node1,配置server应用;
(4)连接仿真节点对象node1至代理对象T1;
(5)连接代理对象T1至网络设备对象I1;
(6)启动数据中心仿真单元的仿真。
7.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I2,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T2;
(3)创建DelayBox类型的仿真节点node2;
(4)连接仿真节点node2至代理对象T2;
(5)连接代理对象T2至网络设备对象I2;
(6)启动网络仿真单元的仿真。
8.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述终端群仿真单元运行基于ns2的终端群仿真模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本:
(1)创建网络设备对象I3,选择pcap/bpf,raw IP,UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T3;
(3)创建终端群仿真clientCloud类型的仿真节点node3;
(4)连接仿真节点node3至代理对象T3;
(5)连接代理对象T3至网络设备对象I3;
(6)启动终端群仿真单元的仿真。
9.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于:所述真实操作系统包括MS-DOS、Windows、Vxworks、OSE、Solaris、FreeBSD、Linux、QNX和RTEMS。
10.一种基于权利要求2至4中任一项所述云计算仿真系统的仿真IP网络传输性能的方法,其特征在于,包括以下步骤:
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4;否则转到步骤S3;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5;
步骤S5、生成一个(0,1)均匀分布的随机数,转到步骤S6;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否≥丢包率,如果是,转到步骤S8;否则,转到步骤S7;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤S10;
步骤S8、如果该均匀分布随机数≥丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布和二项分布,转到步骤S9;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
CN201210458664.3A 2012-11-15 2012-11-15 基于simics系统模拟器的云计算仿真系统及方法 Active CN103023967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210458664.3A CN103023967B (zh) 2012-11-15 2012-11-15 基于simics系统模拟器的云计算仿真系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210458664.3A CN103023967B (zh) 2012-11-15 2012-11-15 基于simics系统模拟器的云计算仿真系统及方法

Publications (2)

Publication Number Publication Date
CN103023967A CN103023967A (zh) 2013-04-03
CN103023967B true CN103023967B (zh) 2015-05-27

Family

ID=47972093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210458664.3A Active CN103023967B (zh) 2012-11-15 2012-11-15 基于simics系统模拟器的云计算仿真系统及方法

Country Status (1)

Country Link
CN (1) CN103023967B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375937A (zh) * 2014-11-19 2015-02-25 福建亿榕信息技术有限公司 一种自动化测试结果持续集成整合方法及系统
CN106681650B (zh) * 2015-11-10 2021-04-30 中国电信股份有限公司 虚拟卷访问方法和虚拟化系统
CN107547261B (zh) * 2017-07-24 2020-10-27 华为技术有限公司 云平台性能测试方法及装置
CN108650149B (zh) * 2018-04-24 2021-10-01 平安科技(深圳)有限公司 服务器的测试方法、装置、设备及计算机可读存储介质
CN112235086A (zh) * 2020-10-14 2021-01-15 天津津航计算技术研究所 一种基于上位机存储的VxWorks操作系统以太网抓包装置
CN113489604B (zh) * 2021-06-24 2022-08-26 哈尔滨工业大学 网络仿真方法、装置、终端设备以及存储介质
CN117217067A (zh) * 2022-05-31 2023-12-12 北京有竹居网络技术有限公司 仿真装置、仿真系统及其仿真方法、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281290A (zh) * 2011-07-18 2011-12-14 北京邮电大学 一种PaaS云平台的仿真系统及方法
CN102468975A (zh) * 2010-11-16 2012-05-23 苏州搜能信息科技有限公司 用于云计算移动网络资源管理模拟云计算系统及应用系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954487B2 (en) * 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468975A (zh) * 2010-11-16 2012-05-23 苏州搜能信息科技有限公司 用于云计算移动网络资源管理模拟云计算系统及应用系统
CN102281290A (zh) * 2011-07-18 2011-12-14 北京邮电大学 一种PaaS云平台的仿真系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《PaaS云计算系统仿真平台及其数据库子系统的设计与实现》;张莹光;《中国优秀硕士学位论文全文数据库信息科技辑》;20120415(第04期);正文 *
《一种基于云计算理念的网络化建模与仿真平台-"云仿真平台"》;李伯虎等;《系统仿真学报》;20090930;第21卷(第17期);第5292-5299页 *
《云计算架构的模拟实现》;廖云鹏;《中国优秀硕士学位论文全文数据库信息科技辑》;20120315(第 03 期);正文 *
《仿真资源云存储技术的研究与实现》;卜少培;《中国优秀硕士学位论文全文数据库信息科技辑》;20120715(第 07 期);正文 *

Also Published As

Publication number Publication date
CN103023967A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN103023967B (zh) 基于simics系统模拟器的云计算仿真系统及方法
Zheng et al. Empower: A network emulator for wireline and wireless networks
CN103685583B (zh) 一种域名解析的方法和系统
Sharkh et al. Building a cloud on earth: A study of cloud computing data center simulators
KR20160106156A (ko) 가시화된 네트워크 운영 및 유지를 위한 방법 및 장치
CN101145977B (zh) 一种IP数据网Qos监测系统及其测量方法
Keat et al. Scheduling framework for bandwidth-aware job grouping-based scheduling in grid computing
CN115576289A (zh) 基于虚拟化技术的可重构高保真大规模工业互联网仿真平台
Erazo et al. SVEET! a scalable virtualized evaluation environment for TCP
CN105488288B (zh) 一种ns3并行模拟仿真系统
CN114553752A (zh) 基于仿真软件的网络性能测试方法、装置和计算机设备
Eljack et al. Performance Analysis of ONOS and Floodlight SDN Controllers based on TCP and UDP Traffic
Liu A primer for real-time simulation of large-scale networks
Tampouratzis et al. A novel, highly integrated simulator for parallel and distributed systems
Banerjee et al. OPNET: a new paradigm for simulation of advanced communication systems
Alssaheli et al. Implementation of network traffic monitoring using software defined networking Ryu controller
CN105323109B (zh) 互连网络仿真器及用于仿真互连网络的方法
Zheng et al. Empower: A cluster architecture supporting network emulation
Nakata et al. Starbed2: Large-scale, realistic and real-time testbed for ubiquitous networks
Han et al. Flow-level traffic matrix generation for various data center networks
Li et al. A domain-specific language for simulation-based testing of IoT edge-to-cloud solutions
Garcia et al. Testing the fidelity of an emulab testbed
Momeni et al. Partov: a network simulation and emulation tool
Liang et al. Research on simulation technology for space-ground integrated network
Cao et al. Data-driven Resource Allocation in Virtualized Environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 430074, No. 88, postal academy road, Hongshan District, Hubei, Wuhan

Patentee after: Wuhan post and Telecommunications Science Research Institute Co., Ltd.

Address before: 430074 No. 88 Hospital Road, Wuhan, Hubei

Patentee before: Wuhan Inst. of Post & Telecom Science