【问题标题】:What kind of Criteria can be design to give priorties to cloudlet in cloudsim?可以设计什么样的标准来优先考虑cloudsim中的cloudlet?
【发布时间】:2019-01-05 09:17:08
【问题描述】:

我在cloudlet属性中随机添加了布尔参数以提供优先权下面的代码还有什么可以做的? 可以将哪些参数添加到 cloudlet 属性中以赋予它们优先级。

    for(int i=0;i<cloudlets;i++){
        Random r= new Random(); // for creating random length
        Random priortyObj =new Random(); // for creating booleon priorty
        cloudlet[i] = new Cloudlet(priorty_cloudlet.priortyObj.nextInt(2),           
                      i, length +r.nextInt(2000),pesNumber,
                      fileSize, outputSize, utilizationModel,                                  
                      utilizationModel,  utilizationModel);
        // setting the owner of these Cloudlets
         cloudlet[i].setUserId(userId);`
         list.add(cloudlet[i]);
     }

【问题讨论】:

    标签: java cloud virtual-machine cloudsim


    【解决方案1】:

    优先级可以通过两种不同的方式处理:(i) 我们可以优先考虑将 Cloudlet 提交给代理,这样高优先级的 Cloudlets 将首先映射到 VM,或者 (ii) 我们可以优先执行VM 中的 Cloudlet。

    尽管 CloudSim 中的 Cloudlet 类有一个用于定义优先级的 classType 属性,但这种属性在任何地方都没有使用,因此您没有实现任何类型的优先级。

    如果您需要定义 Cloudlets 的执行优先级,您可以查看CloudSim Plus,它是一个功能齐全、最先进、完全重新设计和积极维护的 CloudSim 分支。它的CloudletSimple 类有一个priority 属性,实际上由CloudletSchedulerCompletelyFair 使用。这样的调度器是完全公平的 Linux 调度器的实现,它考虑了运行 Cloudlet 的时间片/量子和 Cloudlet 的优先级。

    下面是一个示例 sn-p,介绍如何使用上述调度程序并为 Cloudlets 设置优先级:

    vm.setCloudletScheduler(new CloudletSchedulerCompletelyFair());
    for(int i=0; i < 10; i++){
        Cloudlet c = new CloudletSimple(CLOUDLET_LEN, CLOUDLET_PES);
        c.setPriority(i);  //you must define the priority in your own way
        cloudletList.add(c);
    }
    

    查看完整的LinuxCompletelyFairSchedulerExample

    【讨论】:

    • 感谢您的友好回复,先生。我正在研究这个问题“(i)我们可以优先考虑将 Cloudlets 提交给代理,以便高优先级的 Cloudlets 将首先映射到 VM”。我也这样做了,根据云客户提供的预算优先考虑 cloudlet。
    • 在这种情况下,您可以使用 CloudSim Plus 的 DatacenterBrokerSimple 类。该类使您能够更改当前的 Round-Robin 策略以将 VM 分配给 Cloudlets 到自定义策略,而无需您更改类的代码甚至创建新类。例如,您只需要调用broker0.setVmMapper(this::bestFitCloudletToVmMapper);,然后在您的模拟类中定义一个方法为private Vm bestFitCloudletToVmMapper(final Cloudlet cloudlet)。在该方法中,您可以实施您的策略。
    • 每次请求将 Cloudlet 放入 VM 时都会调用该方法。您收到 Cloudlet 作为该方法的参数,它必须返回您要执行 Cloudlet 的 VM。您可以在github.com/manoelcampos/cloudsim-plus/blob/master/… 查看完整示例。请支持我的第一个答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多