Class VmSchedulerTimeSharedOverSubscription
java.lang.Object
org.cloudbus.cloudsim.schedulers.vm.VmSchedulerAbstract
org.cloudbus.cloudsim.schedulers.vm.VmSchedulerTimeShared
org.cloudbus.cloudsim.schedulers.vm.VmSchedulerTimeSharedOverSubscription
- All Implemented Interfaces:
VmScheduler
public class VmSchedulerTimeSharedOverSubscription extends VmSchedulerTimeShared
A Time-Shared VM Scheduler which allows over-subscription. In other
words, the scheduler still enables allocating into a Host, VMs which require more CPU
MIPS than there is available. If the Host has at least the number of PEs a VM
requires, the VM will be allowed to run into it.
The scheduler doesn't in fact allocates more MIPS for Virtual PEs (vPEs) than there is in the physical PEs. It just reduces the allocated amount according to the available MIPS. This is an over-subscription, resulting in performance degradation because less MIPS may be allocated than the required by a VM.
- Since:
- CloudSim Toolkit 3.0
- Author:
- Anton Beloglazov, Rodrigo N. Calheiros, Manoel Campos da Silva Filho
-
Field Summary
Fields inherited from class org.cloudbus.cloudsim.schedulers.vm.VmSchedulerAbstract
DEFAULT_VM_MIGRATION_CPU_OVERHEAD
Fields inherited from interface org.cloudbus.cloudsim.schedulers.vm.VmScheduler
NULL
-
Constructor Summary
Constructors Constructor Description VmSchedulerTimeSharedOverSubscription()
Creates a time-shared over-subscription VM scheduler.VmSchedulerTimeSharedOverSubscription(double vmMigrationCpuOverhead)
Creates a time-shared over-subscription VM scheduler, defining a CPU overhead for VM migration. -
Method Summary
Modifier and Type Method Description protected void
allocateMipsShareForVm(Vm vm, MipsShare requestedMipsReduced)
Performs the allocation of a MIPS List to a given VM.protected boolean
isSuitableForVmInternal(Vm vm, MipsShare requestedMips)
Checks if a list of MIPS requested by a VM is allowed to be allocated or not.Methods inherited from class org.cloudbus.cloudsim.schedulers.vm.VmSchedulerTimeShared
allocatePesForVmInternal, deallocatePesForAllVms, deallocatePesFromVmInternal, getMipsShareToAllocate, getMipsShareToAllocate
Methods inherited from class org.cloudbus.cloudsim.schedulers.vm.VmSchedulerAbstract
allocatePesForVm, allocatePesForVm, deallocatePesFromVm, deallocatePesFromVm, getAllocatedMips, getAllocatedMipsMap, getHost, getMaxCpuUsagePercentDuringOutMigration, getMipsShareRequestedReduced, getPeCapacity, getRequestedMips, getRequestedMipsMap, getTotalAllocatedMipsForVm, getTotalAvailableMips, getVmMigrationCpuOverhead, getWorkingPeList, isSuitableForVm, isSuitableForVm, percentOfMipsToRequest, putAllocatedMipsMap, removePesFromMap, setHost
-
Constructor Details
-
VmSchedulerTimeSharedOverSubscription
public VmSchedulerTimeSharedOverSubscription()Creates a time-shared over-subscription VM scheduler. -
VmSchedulerTimeSharedOverSubscription
public VmSchedulerTimeSharedOverSubscription(double vmMigrationCpuOverhead)Creates a time-shared over-subscription VM scheduler, defining a CPU overhead for VM migration.- Parameters:
vmMigrationCpuOverhead
- the percentage of Host's CPU usage increase when a VM is migrating in or out of the Host. The value is in scale from 0 to 1 (where 1 is 100%).
-
-
Method Details