| Literature DB >> 35051195 |
Rewer M Canosa-Reyes1, Andrei Tchernykh1,2,3, Jorge M Cortés-Mendoza2, Bernardo Pulido-Gaytan1, Raúl Rivera-Rodriguez1, Jose E Lozano-Rizk1, Eduardo R Concepción-Morales4, Harold Enrique Castro Barrera5, Carlos J Barrios-Hernandez6, Favio Medrano-Jaimes1, Arutyun Avetisyan3, Mikhail Babenko3,7,8, Alexander Yu Drozdov9.
Abstract
Containers have emerged as a more portable and efficient solution than virtual machines for cloud infrastructure providing both a flexible way to build and deploy applications. The quality of service, security, performance, energy consumption, among others, are essential aspects of their deployment, management, and orchestration. Inappropriate resource allocation can lead to resource contention, entailing reduced performance, poor energy efficiency, and other potentially damaging effects. In this paper, we present a set of online job allocation strategies to optimize quality of service, energy savings, and completion time, considering contention for shared on-chip resources. We consider the job allocation as the multilevel dynamic bin-packing problem that provides a lightweight runtime solution that minimizes contention and energy consumption while maximizing utilization. The proposed strategies are based on two and three levels of scheduling policies with container selection, capacity distribution, and contention-aware allocation. The energy model considers joint execution of applications of different types on shared resources generalized by the job concentration paradigm. We provide an experimental analysis of eighty-six scheduling heuristics with scientific workloads of memory and CPU-intensive jobs. The proposed techniques outperform classical solutions in terms of quality of service, energy savings, and completion time by 21.73-43.44%, 44.06-92.11%, and 16.38-24.17%, respectively, leading to a cost-efficient resource allocation for cloud infrastructures.Entities:
Mesh:
Year: 2022 PMID: 35051195 PMCID: PMC8775309 DOI: 10.1371/journal.pone.0261856
Source DB: PubMed Journal: PLoS One ISSN: 1932-6203 Impact factor: 3.240
Characteristics of related works.
| Ref. | Objectives | Bare metal | VMs | CTs | Contention | Evaluation |
|---|---|---|---|---|---|---|
| [ | Energy | - | ● | ● | - | Simulation |
| [ | Energy | - | ● | ● | - | Simulation |
| [ | Energy, QoS | - | - | ● | - | Real |
| [ | Energy, QoS | - | - | ● | - | Real |
| [ | Energy, QoS | - | ● | ● | - | Simulation |
| [ | Energy, SLA/QoS | - | ● | ● | - | Simulation |
| [ | Energy, performance | - | ● | ● | Simulation | |
| [ | Response time | - | - | ● | - | Real |
| [ | Energy | - | - | ● | - | Simulation |
| [ | Deadline, cost | - | - | ● | - | Simulation |
| [ | Cost, QoS | - | ● | ● | - | Simulation |
| [ | Energy | ● | ● | - | ● | Simulation |
| [ | Utilization | - | - | - | ● | Simulation |
| [ | Energy | ● | - | - | ● | Real |
| [ | Accuracy | - | ● | - | ● | Simulation |
| [ | Energy, Utilization | - | ● | - | ● | Simulation |
| [ | Energy, Utilization | - | - | - | ● | Real |
Fig 1Energy profiles of CI and MI applications.
Fig 2Fraction of energy consumption of two job types.
Fig 3Example of container capacity distribution with the required capacity model.
Fig 4Example of container capacity distribution with a full proportional model.
Fig 5Example of container capacity distribution with the full priority model.
Selection policies of containers with sufficient capacity.
| Strategy | Description |
|---|---|
| First Fit (FFit) | Allocates job |
| Best Fit (BFit) | Allocates job |
| Worst Fit (WFit) | Allocates job |
| Minimum Amount of Work (MinAW) | Allocates job |
| MaxSLAv | Allocates job |
| MinSLAv | Allocates job |
| Rand | Allocates job |
Selection policies of containers with available capacity.
| Strategy | Description |
|---|---|
| MinTask | Allocates job |
| MaxCap | Allocates job |
| MinCap | Allocates job |
| MinSLAv | Allocates job |
Experimental setup.
| Procs | Container | |
|---|---|---|
| Number of resources | 25 | 50 |
| Cores | 1 | 1 |
| MIPS | 1,000 | 500 |
| Memory | 1,000 | 500 |
| 86 | - | |
| 180 | - | |
| Type | - | OS |
Fig 6Number and type of jobs per day.
Fig 7Online distribution of jobs per hour.
Strategies for RC model.
| No. | Level | No. | Level | ||||
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 1 | 2 | 3 | ||
| 1 | First Fit (FFit) | MinTask | MinTasks | 33 | MaxSLAv | MinTask | MinTasks |
| 2 | MaxCap | 34 | MaxCap | ||||
| 3 | MinCap | 35 | MinCap | ||||
| 4 | MinSLAv | 36 | MinSLAv | ||||
| 5 | MinTask | MinSLAv | 37 | MinTask | MinSLAv | ||
| 6 | MaxCap | 38 | MaxCap | ||||
| 7 | MinCap | 39 | MinCap | ||||
| 8 | MinSLAv | 40 | MinSLAv | ||||
| 9 | Best Fit (FFit) | MinTask | MinTasks | 41 | MinSLAv | MinTask | MinTasks |
| 10 | MaxCap | 42 | MaxCap | ||||
| 11 | MinCap | 43 | MinCap | ||||
| 12 | MinSLAv | 44 | MinSLAv | ||||
| 13 | MinTask | MinSLAv | 45 | MinTask | MinSLAv | ||
| 14 | MaxCap | 46 | MaxCap | ||||
| 15 | MinCap | 47 | MinCap | ||||
| 16 | MinSLAv | 48 | MinSLAv | ||||
| 17 | Worst Fit (WFit) | MinTask | MinTasks | 49 | Rand | MinTask | MinTasks |
| 18 | MaxCap | 50 | MaxCap | ||||
| 19 | MinCap | 51 | MinCap | ||||
| 20 | MinSLAv | 52 | MinSLAv | ||||
| 21 | MinTask | MinSLAv | 53 | MinTask | MinSLAv | ||
| 22 | MaxCap | 54 | MaxCap | ||||
| 23 | MinCap | 55 | MinCap | ||||
| 24 | MinSLAv | 56 | MinSLAv | ||||
| 25 | Minimum Amount of Work (MinAW) | MinTask | MinTasks | ||||
| 26 | MaxCap | ||||||
| 27 | MinCap | ||||||
| 28 | MinSLAv | ||||||
| 29 | MinTask | MinSLAv | |||||
| 30 | MaxCap | ||||||
| 31 | MinCap | ||||||
| 32 | MinSLAv | ||||||
Strategies for Prop and Prio models.
| No. | Level | model | |
|---|---|---|---|
| 1 | 2 | ||
| 1 | First Fit (FFit) | MinTask |
|
| 2 | MinSLAv | ||
| 3 | Best Fit (BFit) | MinTask | |
| 4 | MinSLAv | ||
| 5 | Worst Fit (WFit) | MinTask | |
| 6 | MinSLAv | ||
| 7 | Minimum Amount of Work (MinAW) | MinTask | |
| 8 | MinSLAv | ||
| 9 | MaxSLAv | MinTask | |
| 10 | MinSLAv | ||
| 11 | MinSLAv | MinTask | |
| 12 | MinSLAv | ||
| 13 | Rand | MinTask | |
| 14 | MinSLAv | ||
| 15 | First Fit (FFit) | MinTask |
|
| 16 | MinSLAv | ||
| 17 | Best Fit (BFit) | MinTask | |
| 18 | MinSLAv | ||
| 19 | Worst Fit (WFit) | MinTask | |
| 20 | MinSLAv | ||
| 21 | Minimum Amount of Work (MinAW) | MinTask | |
| 22 | MinSLAv | ||
| 23 | MaxSLAv | MinTask | |
| 24 | MinSLAv | ||
| 25 | MinSLAv | MinTask | |
| 26 | MinSLAv | ||
| 27 | Rand | MinTask | |
| 28 | MinSLAv | ||
Fig 8SLAv for the best and worst strategies.
Fig 9C for the best and worst strategies.
Fig 10E for the best and worst strategies.
Average degradation and ranking for the best strategies.
| Strategy |
|
|
| Mean | Rank | Rank | Rank | Rank mean | Rank |
|---|---|---|---|---|---|---|---|---|---|
| WF_MinTask_Prop | 0.223 | 0.047 | 0.087 | 0.119 |
| 14 |
|
|
|
| MinAW_MinTask_Prop | 0.247 | 0.045 | 0.103 | 0.132 |
| 10 | 8 |
|
|
| MinSLAv_MinTask_Prop | 0.723 | 0.040 | 0.126 | 0.296 |
| 4 | 21 | 4 | 5 |
| BF_MinTask_Prop | 0.781 | 0.027 | 0.103 | 0.304 | 5 |
| 9 | 5 |
|
| MaxSLAv_MinTask_Prio | 11.545 | 0.037 | 0.104 | 3.895 | 45 |
| 10 | 45 | 12 |
| MaxSLAv_MinTask_Prop | 0.729 | 0.038 | 0.120 | 0.295 | 4 |
| 19 | 3 | 4 |
| FF_MinTask_Prio | 8.152 | 0.046 | 0.087 | 2.762 | 35 | 11 |
| 35 | 9 |
| MaxSLAv_MaxCap_MinTask | 11.820 | 0.053 | 0.096 | 3.990 | 49 | 24 |
| 47 | 19 |
| Rand | 129.551 | 0.299 | 0.837 | 43.562 | 86 | 86 | 86 | 86 | 78 |
| RR | 122.365 | 0.278 | 0.724 | 41.122 | 85 | 85 | 85 | 85 | 77 |
Fig 11Performance profile of SLAv.
Fig 12Performance profile of C.
Fig 13Performance profile of E.
Fig 14Performance profile of E and C average.
Set coverage and ranking.
| Strategies | BF_MinTask_Prop | FF_MinTask_Prop | MaxSLAv_MinTask_Prop | MinAW_MinTask_Prop | MinSLAv_MinTask_Prop | WF_MinTask_Prop | FF_MinTask_Prio | MinAW_MinTask_Prio | WF_MinTask_Prio | Average best | Rank best | Average all | Rank all |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BF_MinTask_Prop | 1 | 0.233 | 0.200 | 0.067 | 0.267 | 0.067 | 0.433 | 0.300 | 0.267 | 0.315 |
| 0.544 |
|
| FF_MinTask_Prop | 0.033 | 1 | 0.100 | 0.067 | 0.167 | 0.067 | 0.200 | 0.167 | 0.167 | 0.219 | 7 | 0.432 | 7 |
| MaxSLAv_MinTask_Prop | 0.000 | 0.200 | 1 | 0.133 | 0.200 | 0.033 | 0.300 | 0.300 | 0.167 | 0.259 | 4 | 0.464 |
|
| MinAW_MinTask_Prop | 0.100 | 0.233 | 0.267 | 1 | 0.200 | 0.167 | 0.300 | 0.400 | 0.267 | 0.326 |
| 0.462 | 4 |
| MinSLAv_MinTask_Prop | 0.100 | 0.133 | 0.300 | 0.033 | 1 | 0.000 | 0.233 | 0.233 | 0.200 | 0.248 | 5 | 0.450 | 6 |
| WF_MinTask_Prop | 0.100 | 0.300 | 0.300 | 0.200 | 0.167 | 1 | 0.300 | 0.367 | 0.267 | 0.333 |
| 0.516 |
|
| FF_MinTask_Prio | 0.100 | 0.067 | 0.133 | 0.100 | 0.133 | 0.000 | 1 | 0.133 | 0.067 | 0.193 | 8 | 0.413 | 8 |
| MinAW_MinTask_Prio | 0.100 | 0.033 | 0.067 | 0.067 | 0.067 | 0.033 | 0.167 | 1 | 0.067 | 0.178 | 9 | 0.402 | 9 |
| WF_MinTask_Prio | 0.067 | 0.133 | 0.100 | 0.033 | 0.100 | 0.033 | 0.267 | 0.333 | 1 | 0.230 | 6 | 0.457 | 5 |
| Average best | 0.178 | 0.259 | 0.274 | 0.189 | 0.256 | 0.156 | 0.356 | 0.359 | 0.274 | ||||
| Rank |
| 5 | 6 |
| 4 |
| 7 | 8 | 6 | ||||
| Average all | 0.022 | 0.035 | 0.035 | 0.023 | 0.033 | 0.020 | 0.049 | 0.050 | 0.027 | ||||
| Rank |
| 6 | 6 |
| 5 |
| 7 | 8 | 4 |
Notation.
| Notation | Description |
|---|---|
|
| CPU intensive jobs |
|
| Memory intensive jobs |
|
| Bandwidth intensive jobs |
|
| Required Capacity model |
|
| Full Proportional capacity model |
|
| Full Priority capacity model |
|
| Set Coverage metric |
|
| Performance Profile |
|
| Maximum processing capacity of |
|
| Number of containers running in |
|
| Containers running in |
|
| Processing capacity of container |
|
| The total number of containers running in the infrastructure is denoted by |
|
| Subset of jobs running in the container |
|
| Number of SLA violations in the container |
| Set of | |
|
| Release time of |
|
| Minimum required processing speed of |
|
| The total amount of work of |
|
| Job type of |
|
| Priority of |
|
| Processing speed of |
|
| Maximum finishing time (completion time or makespan) of all jobs |
|
| Total energy consumption |
|
| Total number of violations of the service level agreements |
| Energy consumption of the infrastructure at time | |
|
| Energy consumption of the processor |
| If the processor is on at time | |
|
| A constant for idle power or base power of processor |
|
| Dynamic energy consumption of processor |
|
| A constant for the maximum energy consumption of the processor |
| Portion of the power consumed by different types of jobs | |
|
| Fraction of the total energy consumption introduced by job type combinations |
|
| Concentration (proportion) of the job |
|
| Fraction of energy consumption of a given job type |
|
| Utilization of all jobs of type |
|
| Percentage of |
|
| Percentage of |
| Piecewise constant function | |
| Dominance of strategy |