当前位置: 首页 > 知识库问答 >
问题:

Cloudsim:更新VM

史良哲
2023-03-14

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

我不知道我需要在哪里做这件事。

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

但只有在将所有云小程序提交给VM后才会调用它。

每当cloudlet成功执行时,我需要更新VM的Ram。

对于,例如:

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

有人能帮我吗。。非常感谢。

共有1个答案

卞成荫
2023-03-14

你可以做如下操作:

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);
    }
}

在这里,您可以检查已提交的任务是否已完成,以便更新VM。

 类似资料:
  • Cloudsim中的分时是如何工作的,没有代表时间片或量子的变量,那么循环的概念在Cloudsim中是如何验证的呢? 如果我们有50个Cloudlet,10个VM

  • 谁能解释一下这两种方法的真正区别 vm。GetTotalizationofCPU(CloudSim.clock()); 和 cloudlet.get利用OfCpu(CloudSim.clock()); 提前感谢

  • 全部的 现在,我正在使用CloudSim设计一个云存储模拟,但我想知道CloudSim是否提供了在物理磁盘上写入数据的功能。如果没有,我在哪里添加组件?

  • 我想在Cloud sim中实现虚拟机迁移时间公式,我做了一个简单的方法,但它给了我错误的结果,问题是我需要在模拟中迁移虚拟机的列表,以便我可以计算和打印最终的总迁移时间,如果您有任何想法,请帮助我!

  • 我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。 Bean2 问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。 有没有办法修复这个bug?提前感谢! 更新1:

  • 我有一个表单,其中用户创建了一个编码问题。在表单中,可以通过输入和输出文本框添加示例测试用例。用户可以单击按钮添加新的测试用例。现在我有一个state对象,它保存所有表单数据formObj,其中有一个示例_test_cases字段,我想保存一个对象数组,比如:[{input:,output::}]。 我遇到的问题是更新此阵列。我需要能够在每次添加测试用例时将一个新对象连接到它。然后在文本框更改时更