Cloudsim 3.0.3中VM调度策略系列类解析(带迁移的策略)

    Cloudsim中VM调度策略类在DataCenter(或PowerDataCenter)创建时需要制定,更是我们在Cloudsim上试验我们的调度算法的核心所在。

    CloudSim中给出了VmAllocationPolicy抽象类,还有提供了一个VmAllocationPolicySimple简单调度策略类,其介绍见前一篇blog。

    另外,Cloudsim3.0.3中提供了Power系列包(在之前几篇blog中提到的诸如PowerHost, PowerDataCenter等),自然也有对应的Policy类,并且丰富得多。Power系列包里面有三种Policy:

第一种是PowerVmAllocationPolicyAbstract(继承VmAllocationPolicy)及其子类:是没有迁移的调度策略;提供的接口基本与父类VmAllocationPolicy一致,实现并增加了一些方法。

第二种是PowerVmAllocationPolicyMigrationAbstract(本身继承第一种)及其子类:带有VM迁移的调度策略。

第三种是PowerVmSelectionPolicy及其子类:这个selection是指选择“需要迁移”的VM,所以这些类用来在执行VM migration时选择VM。

    第一种策略不支持迁移,与与父类VmAllocationPolicy基本上一致,在上一篇blog中介绍了。

    本文要介绍带有迁移行为的策略,即第二种;而带迁移的VM调度策略的实现需要vm selection策略的支持(即第三种),所以先介绍第三种。


3、public abstract class PowerVmSelectionPolicy 

继承:无

成员:无

重要方法:

public abstract Vm getVmToMigrate(PowerHost host):在host主机上找一个合适的VM准备迁移,是抽象方法,在该抽象类中无实现;

protected List<PowerVm> getMigratableVms(PowerHost host):有实现,用来在host上获取可迁移的Vm(必须是PowerVm),可迁移=不处在迁移状态


现在选择一个有代表性的VM selection策略——PowerVmSelectionPolicyMinimumUtilization

3-a、public class PowerVmSelectionPolicyMinimumUtilization

继承:public abstract class PowerVmSelectionPolicy 

增加的成员:无

重要方法:

@Override
public Vm getVmToMigrate(PowerHost host)
:首先获取host上可迁移的vm列表,在该列表中遍历vm,最终返回CPU利用率最低的那个vm。



选择完该迁移的VM后,就是要选择目标主机并完成迁移操作,这些内容包含在PowerVmAllocationPolicyMigrationAbstract及其子类中

4、public abstract class PowerVmAllocationPolicyMigrationAbstract


继承:PowerVmAllocationPolicyAbstract,也就是说分配策略也有所实现

增加的成员:

private PowerVmSelectionPolicy vmSelectionPolicy:采用的VM selection策略

private final List<Map<String, Object>> savedAllocation

基于遗传算法(Genetic Algorithm,GA)改进CloudSim资源调度策略是一种常用的方法,它能够优化资源的分配和任务调度,以提高云计算环境下的性能和效率。下面是一般的步骤: 1. 定义适应度函数:首先,需要定义一个适应度函数来评估每个个体(即资源调度策略)的优劣。适应度函数可以根据任务完成时间、资源利用率等指标来衡量。 2. 初始化种群:使用GA时,需要初始化一个初始种群,其每个个体代表一个资源调度策略。可以随机生成或者采用其他启发式方法生成初始种群。 3. 选择操作:通过选择操作,从当前种群选择一部分较好的个体作为下一代的父代。常用的选择操作包括轮盘赌选择、锦标赛选择等。 4. 交叉操作:通过交叉操作,将选的父代个体进行交叉,产生新的后代个体。交叉操作可以使用单点交叉、多点交叉等方式。 5. 变异操作:为了保持种群的多样性,在交叉操作后,需要对新生成的后代个体进行变异操作。变异操作可以随机改变个体的某些特征或参数。 6. 更新种群:根据选择、交叉和变异操作生成的后代个体,更新当前种群。 7. 重复步骤3至6,直到满足终止条件。终止条件可以是达到最大迭代次数或者达到一定的收敛程度。 8. 选择最优解:在GA的最后一代种群,根据适应度函数选择最优的个体作为最终的资源调度策略。 需要注意的是,具体的GA实现可以根据你的需求和实际情况进行调整。你可以根据CloudSim的框架和API,将GA的操作嵌入到资源调度策略,并根据实验结果对其进行优化和调整。此外,还可以考虑使用GA的变种或结合其他优化算法来进一步改进资源调度策略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值