cloudsim的power例子的学习
cloudsim3.0中的例子程序当中,有三个包power和power.random还有power.planetlab.如图:1 power包这个包中定义了两个类,这两个将会被power.planet 和power.random这两个包中的测试程序所使用。这个包中最主要的两个类1 Helper类最主要进行虚拟机,主机列表,数据中心和数据中心管理者的创建.而cloudlet列表和工作
cloudsim3.0中的例子程序当中,有三个包power和power.random还有power.planetlab.如图:
1 power包
这个包中定义了两个类,这两个将会被power.planet 和power.random这两个包中的测试程序所使用。这个包中最主要的两个类1 Helper类最主要进行虚拟机,主机列表,数据中心和数据中心管理者的创建.而cloudlet列表和工作流的相关,所有在这两种具体实现中的RandomHelper和PlanetLabHelper这两个类中实现cloudlet的实现。
Example中的这些测试程序是用来测试不同的VM选择策略和VM分配策略
VM选择策略有:
MC( Maximum Correlation )
MNT(Minimum Migration Time )
MU( Minimum Utilization)
RS(Random Selection )
VM分配策略有:
IQR(Inter Quartile Range),
MAD(Median Absolute Deviation 平均绝对离差,
LR(Local Regression)
LRR(Local Regression Robust),
THR(Static Threshold )
以及:
DVFS(Dynamic voltage and frequency scaling )
2 power.random包
每个测试程序都有一个RandomRunner 开始模拟
randomRunner 集成一个RunnerAbstract类,需要,每个randomRunner类都需要复写RunnerAbstact类中的ini(String inputFolder) 抽象方法,需要完成初始化,制定2个Vm的策略,3个列表,主机列表,VM列表和cloudlet列表,工作流等信息。注意这个包时random包,所以说这个包中测试程序都是采用随机工流的。而这一点和power.planet中的测试略有不同
实际的开始模拟工作实在父类RunnerAbstract类当中start()中做的,由数据中心的broker,提交Vm和Cloudlet列表,CloudSim.terminateSimulation(Constants.SIMULATION_LIMIT);
设置过了SIMULATION_LIMIT之后停止模拟,然后开始模拟真正,在输出结果。这个包中的测试程序大同小异。
3 power,planetlab包
再看power.palnet包也是非常类似,也是对Vm选择和分配策略进行了测试。不同上面的random包中的测试程序的是,这个包中的测试程序都需要制定工作流。例如:
这次和上面的randomRunner类似的是这里是PlanetLabRunner 这二者的道理是相同,PlanetLabRunner也是继承的RunnerAbstract.工作流的指定,见
这里面指定了不同的工作流。
更多推荐
所有评论(0)