Requested empty list of PEs for Vm

26 views
Skip to first unread message

Alexandre Dias

unread,
Mar 17, 2020, 8:42:42 PM3/17/20
to CloudSim Plus
Hello everyone,

I have been trying to understand the following warning in my simulations:
WARN  300.11: VmSchedulerTimeSharedOverSubscription: It was requested an empty list of PEs for Vm 778 in Host 95/DC 1
INFO  300.11: VmAllocationPolicyMathematicalFormulation: Vm 778 has been allocated to Host 95/DC 1
INFO  300.11: Migration of Vm 778 to Host 95/DC 1 is completed

After the simulation has been created, I read the VM allocation and create a MILP model using a solver.
The solver will optimize the model and return an allocation map which I convert to the migration map required to perform migrations in CloudSim Plus.

This method is called inside getOptimizedAllocationMap, which returns this migrationMap.
The warning is shown for every Vm that is migrated.

Am I missing something?

Thanks,
Alexandre.

Manoel Campos

unread,
Mar 18, 2020, 1:07:25 PM3/18/20
to clouds...@googlegroups.com
Are you making sure this pmList.get(j) is not returning an empty list sometimes?

Manoel Campos da Silva Filho Software Engineer

Computer Science and Engineering Ph.D. Student at University of Beira Interior (Portugal)

Professor at Federal Institute of Education, Science and Technology of Tocantins (Brazil)

http://manoelcampos.com


 about.me


--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to the Google Groups "CloudSim Plus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/4912a920-96f5-48ae-b99e-7b0dd3958778%40googlegroups.com.

Alexandre Dias

unread,
Mar 18, 2020, 6:54:24 PM3/18/20
to CloudSim Plus
The pmList is a list containing Hosts. The pmList.get(j) call will return the Host to which the VM should be migrated.
Also, it will not return an empty list or null because I create my MILP model according to the amount of Hosts I have in the scenario.

I thought I was supposed to provide a Map<Vm, Host>, but after your answer I am not sure if I understood how to create the migration map properly to be used by the getOptimizedAllocationMap method.
I am confused because the warning is about the PEs list of the VM, which I have not changed.
To unsubscribe from this group and stop receiving emails from it, send an email to clouds...@googlegroups.com.

Manoel Campos

unread,
Mar 19, 2020, 8:00:47 AM3/19/20
to clouds...@googlegroups.com
I thought I was supposed to provide a Map<Vm, Host>, but after your answer I am not sure if I understood how to create the migration map properly to be used by the getOptimizedAllocationMap method.
Sorry, never mind my previous answer. I confused pmList with peList.
 
I am confused because the warning is about the PEs list of the VM, which I have not changed.
Even if you don't change VMs' PEs list, since you are using a VmSchedulerTimeSharedOverSubscription, when it tries to run some VM, there may not be available physical PEs for that VM at that time. Do you really need this scheduler?
Maybe you just need a VmSchedulerTimeShared. There was an issue with it that I've fixed recently.
 
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/eb7fdca4-271c-41a5-a5b0-d0f9abd3917d%40googlegroups.com.

Alexandre Dias

unread,
Mar 19, 2020, 8:46:29 PM3/19/20
to CloudSim Plus
I am trying to understand the difference between these two schedulers.

Here is an example of the kind of scenario I want to simulate:
Assume there are two VMs each of which has 1 PE and 1000 MIPS, and 1 Host with 2 PEs of 500 MIPS each.
If both VMs are using half of their capacity, 500 MIPS, then the Host should be able to host them.

Is it possible to achieve such a scenario using the VmSchedulerTimeShared?
If not, what should I do to avoid raising the warnings?

My final goal is to perform every migration reported by the solver.
I thought that the VmSchedulerTimeSharedOverSubscription would be appropriate, since I might be allocating more VMs than the Host capacity, hoping that the VMs would not be used to their fullest.

Again, thanks for your support.

Manoel Campos

unread,
Mar 21, 2020, 6:33:25 PM3/21/20
to clouds...@googlegroups.com
On Thu, Mar 19, 2020 at 9:46 PM Alexandre Dias <alehenr...@gmail.com> wrote:
I am trying to understand the difference between these two schedulers.

Here is an example of the kind of scenario I want to simulate:
Assume there are two VMs each of which has 1 PE and 1000 MIPS, and 1 Host with 2 PEs of 500 MIPS each.
If both VMs are using half of their capacity, 500 MIPS, then the Host should be able to host them.

Is it possible to achieve such a scenario using the VmSchedulerTimeShared?
I'm not sure. You have to try with a small experiment and check results.
In the scenario you shown, all VMs require a total of 1000 MIPS and the total Host capacity is 1000 MIPS.
The VmSchedulerTimeShared will allocate the required MIPS for the VM.
 
If not, what should I do to avoid raising the warnings?

My final goal is to perform every migration reported by the solver.
I thought that the VmSchedulerTimeSharedOverSubscription would be appropriate, since I might be allocating more VMs than the Host capacity, hoping that the VMs would not be used to their fullest.
If the Hosts' Total MIPS capacity is smaller than the sum of the MIPS requested by all VMs and you want to perform the allocation anyway, then you need this scheduler. In such a case, if a VM requests 1000 MIPS total and the Hosts total MIPS available is only 500, the VM will get only 500 MIPS. But the issue you are facing is probably because the Host MIPS capacity was exhausted an no more PEs can be allocated to any VM. And if that is the case, the warnings are as expected. You have to create a small simulation example that you know exactly what the expected results are, then check what I'm saying. You can do that by changing the VmSchedulerTimeSharedExample, for instance.
 
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/a492e660-3c4a-4f49-b979-98b509323f1a%40googlegroups.com.

Alexandre Dias

unread,
Mar 23, 2020, 8:26:00 PM3/23/20
to CloudSim Plus
I have tried to create a minimal example to reproduce my problem in this gist: https://gist.github.com/alexandredias3d/a32dfac0131a081503a80685ac9d03b9.

Here is a screenshot of the log showing the warning. For some reason, the first warnings about the amount of MIPS not being allocated to a VM due to migration do not appear in my original scenario.

As seen in the log, the warning shows up even though there are available MIPS and PE for the VM 0 in Host 2.
I am not sure if the cloudlets utilization should change this behaviour.

Thanks,
Alexandre.

Manoel Campos

unread,
Apr 2, 2020, 6:44:19 PM4/2/20
to clouds...@googlegroups.com
Hello Alexandre,

I've just fixed the issue #232.
Check the link and commit message for details.
Thanks for reporting.

Manoel Campos da Silva Filho Software Engineer

Computer Science and Engineering Ph.D. Student at University of Beira Interior (Portugal)

Professor at Federal Institute of Education, Science and Technology of Tocantins (Brazil)

http://manoelcampos.com


 about.me

To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/52e1f509-6989-46e8-9422-b1efbb161b84%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages