【问题标题】:Cloudsim: Update VMCloudsim:更新虚拟机
【发布时间】:2016-03-20 10:54:02
【问题描述】:

我正在研究一种算法来选择VM 来部署Cloudlet(task)。 现在,每当 cloudlet 完成执行时,我都需要更新 VM 的 当前分配的内存。

我不知道我需要在哪里执行此操作。

我在DataCenterbroker 类的processCloudletReturn() 方法中试过这个

但只有在所有小云都提交给虚拟机后才会调用它。

只要 cloudlet 成功执行,我就需要更新 VM 的 Ram。

例如:

让我们考虑一下,我有 100 个任务要部署,现在我提交了 20 个任务,那么在提交第 21 个任务之前,如果第一个任务完成执行,我需要更新相应的 VM

谁能帮帮我.. 谢谢。。

【问题讨论】:

    标签: java cloudsim


    【解决方案1】:

    你可以这样做:

    for(Cloudlet cloudlet: getCloudletSubmittedList()){
            if(!finishedCloudlets.contains(cloudlet) && cloudlet.isFinished()){
            Vm vm = getVmsCreatedList().get(cloudlet.getVmId()-1);                        
            vm.setCurrentAllocatedRam(vm.getCurrentAllocatedRam() - (int)(cloudlet.getUtilizationOfRam(CloudSim.clock())*100));
            vm.updateVmProcessing(CloudSim.clock(), null);
            finishedCloudlets.add(cloudlet);
        }
    }
    

    您可以在此处检查已提交的任务是否已完成,如果可以更新您的虚拟机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 2019-05-23
      相关资源
      最近更新 更多