Elasticity with cloudsim

95 views Asked by At

I'm working on a task scheduling method for cloud computing, the problem is l wanna create VMs during the run time in order to have elasticity and decrease the task rejection rate, but I dont know how to do this and where should I put the code for creation the Vms :-?

1

There are 1 answers

0
Manoel Campos On

Using CloudSim Plus you can do that without requiring to change the framework code. CloudSim Plus provides different event listeners that you can use to create Cloudlets or VMs dynamically. It even enables you to submit such objects without requiring you to create a new broker. The code snippet to accomplish that is as below:

//Constructor of the example class
private KeepSimulationRunningExample() {
  //Initializes CloudSim Plus 
  simulation = new CloudSim();

  //The simulation startup code goes here...
  //It creates objects such as Datacenters, Hosts, etc.

  //Adds a Listener that will be notified when the simulation clock changes
  simulation.addOnClockTickListener(this::createDynamicCloudletAndVm);
  simulation.start();
}

/** Creates a new VM when the simulation reaches a defined time */
private void createDynamicCloudletAndVm(EventInfo evt) {
    if((int)evt.getTime() == TIME_TO_CREATE_NEW_VM){
        Vm vm = new VmSimple(1000, 2);
        //Configure your VM here (such as setting a CloudletScheduler)
        vmList.add(vm);
        broker0.submitVm(vm);
    }
}

The complete example is available here. The dynamic package shows other examples using different listeners to create VMs and Cloudlets.