cloudsimplus / cloudsimplus

State-of-the-art Framework 🏗 for Cloud Computing ⛅️ Simulation: a modern, full-featured, easier-to-use, highly extensible 🧩, faster 🚀 and more accurate ☕️ Java 17+ tool for cloud computing research 🎓. Examples: https://github.com/cloudsimplus/cloudsimplus-examples

Home Page:https://cloudsimplus.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Enable VmAllocationPolicy implementations to power Hosts on and off as required

manoelcampos opened this issue · comments

Host has an active attribute to indicate if it's powered on or off. However, they are not being powered off when they become idle. The active state of the Host is usually verified by checking if its CPU usage is greater than zero.

In real environments, if a Host CPU utilization is zero, it's actually powered off. Even if the Host doesn't have user applications running, it has its own operating system (OS), so its CPU usage will be greater than zero.

But in simulation, it isn't being considered the overhead of the Host's OS. The CPU utilization data is just about running VMs, not the Host's OS. Therefore, when there aren't running VMs, the Host's CPU utilization becomes zero. This way, we are considering the Host is powered off immediately after it is idle. Despite idle and powered off states are different, they are being treated the same.

The VmAllocationPolicy must define an attribute to indicate if idle Hosts should be powered off or not. Furthermore, if a VmAllocationPolicy can't find a suitable Host for a VM between the active Hosts, it should activate a new Host. The activation of a Host has an impact on VM placement due to the boot time which cannot be neglected. If the non-idle Hosts aren't suitable to place a given VM, current implementations just get a Host with zero CPU utilization to immediately place the VM. The delay caused by the Host boot time is not considered. A bootTime attribute could be defined in the Host to enable considering that when activating a Host.

The way original CloudSim checks if a Host is active is if its CPU utilization is zero, which doesn't mean the Host is powered off.

Examples Available

Related Issues