Как мы можем динамически создавать VM и Cloudlets в cloudim после вызова CloudSim.startSimulation ()? - PullRequest
0 голосов
/ 11 сентября 2018

Как мы можем динамически создавать VM и Cloudlets в cloudim после вызова CloudSim.startSimulation ()?Я пытаюсь добавить vms и cloudlets, к уже существующему брокеру, динамически в процессе симуляции.Я попробовал это:

CloudSim.startSimulation();
vm_list = create_vm(brokerId, 1, 6); //creating 1 vms,ID=6  
cloudlet_list = create_cloudlet(brokerId, 1, 6); // creating 1 cloudlet,CloudletId=6

broker.submitVmList(vm_list);
broker.submitCloudletList(cloudlet_list);

Но этот код не работает, облачные сервисы не учитываются CloudSim. Может кто-нибудь предложить какой-нибудь способ, которым я смогу динамически добавлять виртуальные машины и планировать кластерные игры после симуляции?начинается?

1 Ответ

0 голосов
/ 02 ноября 2018

В CloudSim после запуска моделирования вы не можете создавать новые объекты, не требуя добавления нового потока, приостановки моделирования и добавления необходимых объектов.

В CloudSimПлюс вы можете сделать это легко двумя различными способами.

1) Вы можете определить задержку при отправке Cloudlets или виртуальных машин:

broker.submitCloudletList(cloudletList, delay);
broker.submitVmList(vmList, delay);

2) Вы можете использовать некоторые изПрослушиватель событий CloudSim Plus (например, тот, который отслеживает изменение часов моделирования), а затем отправляет новые Cloudlets или виртуальные машины уже существующему брокеру.Для этого вам сначала нужно добавить метод ниже в ваш класс моделирования:

/**
 * Event listener which is called every time the simulation clock advances.
 * @param info information about the event happened.
*/
private void clockTickListener(final EventInfo info) {
    //at the desired time, submit new cloudlets
    if(info.getTime() == 10) {
        //@todo create your new cloudlets here 
        //submits another list of new created Cloudlets
        broker.submitCloudletList(newCloudletList, delay);
    }
}

и вызвать simulation.addOnClockTickListener(this::clockTickListener) до simulation.start().

Существует множество полных примеров здесь .

...