The UPS and UPS-ES scheduling policies discussed in the last chapter makes use of two threshold values of host utilization. One threshold was used while scheduling the non-urgent tasks, and the other one was used when scheduling an urgent task. But in this work, we have formally computed an optimum value of host utilization at which the host consumes the minimum amount of energy known as critical utilization (described later in Section 5.3 in detail). Depending on the specification of the task and the value of critical utilization, we allocate a VM of suitable type to each task, so that, no deadline is missed and minimum amount of energy is consumed. For scheduling the selected VMs to the available physical hosts, we have divided our problem into several cases and solved each case separately. We thus summarize the contribution of this chapter as follows.
• First, we calculate the critical utilization value for the cloud host where the energy consumption is minimum.
• Next, we put forward an analysis regarding two choices while allocating a task. These are (i) to increase the utilization of a running host, and (ii) switching on a new host.
• Then, we divide the problem of scheduling into four different subproblems based on the task characteristics and propose a solution for each subproblem.
vt1 vt2
vtk
PM PM PM PMm
2 1
3
t2 t1
t n
Cloud System k VM types m PMs n Tasks
Figure 5.1: System model
is the maximum when it is utilized to its maximum compute capacity. For a hosthk, its utilization U(hk) ranges in between 0 and 1. These hosts con- sume energy which depends on the total utilization of the host. All the hosts possess one more property that is critical utilization, uc. It is the utilization at which energy consumption is minimum (this is defined formally in next section).
• Virtual Resource Layer: This layer constitutes virtual machines which need to be hosted on physical machines for task execution. The utilization of a VM is proportional to its compute capacity and it expressed in MIPS (million instructions per second). We have taken k types of VMs based on the values of utilization they provide to a task. The set of VM types is denoted by V T = {vt1, vt2,· · · , vtk}. The compute capacity offered to the tasks by these VM types is not continuous. For each VM type, there is no limit on the number of VMs. These VM types are characterized by the amount of CPU utilization (proportional to the compute capacity) they provide to a task when hosted to a physical machine, also when the VM with utilization u runs on top a host, it consumes u fraction of compute (CPU) resource of the host. For a VM type vtj, there is a constantuj, which is the amount of utilization that vtj will provide for the task. The value of uj is between 0 and 1 that is 0< uj ≤1. When VMs are allocated to a host at a particular time, the sum of their total utilization must be less than or equal to 1, which is
ν
P
j=1
uj ≤ 1, where ν is the number of VMs allocated to that host and uj is the utilization ofvmj.
For the sake of simplicity, we have considered five types of VMs (k = 5) : tiny (T), small (S), medium (M), large (L) and extra large (XL) with discrete utilization values uT = 0.2, uS = 0.4, uM = 0.6, uL = 0.8, and uXL = 1.0
respectively. But the work can be easily extended for any value of k. For instance, the compute capacity of a tiny type VM placed on a host with compute capacity of 1000 MIPS will be CP(V MT) = 1000·uT = 1000·0.2
= 200 MIPS. Similarly, the compute capacities of S, M, L and XL type VMs will be 400, 600, 800, and 1000 MIPS respectively.
• Task Layer: The users send requests to the cloud system in form of tasks.
The set or bag ofntasks is denoted byT ={t1, t2,· · · , tn}. The tasks in user requests are independent. Each task is an indivisible unit which needs to be executed on one VM (and one host) only. Any such taskti can be described using 3-tuple: ti = (ai, ei, di), where ai is arrival time, ei is the execution time when run at maximum utilization (umax = 1) and di is the deadline for the task. We are considering synced tasks to be scheduled (ai = 0 for all the tasks). Therefore, tasks can be represented using 2-tuple in our case ti = (ei, di).
The execution time of a task is expressed in seconds and this can be calcu- lated from the length of the task. For a task ti with lengthli, the execution time ei can be expressed as
ei = li
CP(V MXL) (5.1)
where CP(V MXL) is the compute capacity of the VMs of type XL. When the task is executed by a VM of other type, its execution time will increase;
but it is dependent on its length li.
The minimum value of utilization required byti is ui = dei
i. Therefore, if we execute the task at utilizationui, it finishes exactly atdi. But the utilizations of the VMs available in the system are discrete (equi-spaced on utilization line). Let uLF(ti) be the utilization of the least feasible VM type among the available k VM types for a taskti(ei, di). Then this can be written as
uLF(ti) = 1kdedii ·ke (5.2) where k is the number of VM types available in the system. This formula works for the cases when utilizations provided by VM types is equally dis- tributed over the range (0,1.0]. All the VM types with utilization value greater than or equal to uLF (as computed by Equation 5.2) are suitable for the task ti. We do not allow a task with utilization requirement more than 1 in our system. We assume that the VM creation and deletion time is
negligible in our work. Thus as soon as a task gets scheduled for execution to a VM of a particular type, the execution of the task can immediately start.
Moreover we assume that the tasks are specified with the