Container Cloud Sim
Container Cloud Sim
net/publication/304536577
CITATIONS READS
108 2,381
4 authors, including:
Some of the authors of this publication are also working on these related projects:
QoS-aware Multi-objective Dynamic Virtual Machine Consolidation in Infrastructure Clouds View project
All content following this page was uploaded by Sareh Fotuhi Piraghaj on 04 July 2016.
Sareh Fotuhi Piraghaj∗† , Amir Vahid Dastjerdi, Rodrigo N.Calheiros and Rajkumar
Buyya
Cloud Computing and Distributed Systems (CLOUDS) Laboratory, Department of Computing and Information Systems,
The University of Melbourne, Australia.
SUMMARY
Containers are increasingly gaining popularity and becoming one of the major deployment models in cloud
environments. To evaluate the performance of scheduling and allocation policies in containerized cloud
data centers, there is a need for evaluation environments that support scalable and repeatable experiments.
Simulation techniques provide repeatable and controllable environments and hence they serve as a powerful
tool for such purpose. This paper introduces ContainerCloudSim, which provides support for modeling
and simulation of containerized cloud computing environments. We developed a simulation architecture for
containerized clouds and implemented it as an extension of CloudSim. We described a number of use cases
to demonstrate how one can plug in and compare their container scheduling and provisioning policies in
terms of energy efficiency and SLA compliance. Our system is highly scalable as it supports simulation of
large number of containers, given that there are more containers than virtual machines in a data center.
Copyright
c 2010 John Wiley & Sons, Ltd.
Received . . .
KEY WORDS: Cloud Computing; Simulation; Container as a Service (CaaS); Containerized Clouds.
1. INTRODUCTION
Due to the elasticity, availability, and scalability of its on-demand resources, cloud computing is
being increasingly adopted by businesses, industries, and governments for hosting applications.
In addition to traditional cloud services, namely Infrastructure as a Service (IaaS), Platform as a
Service (PaaS), and Software as a Service (SaaS), recently a new type of service—Containers as
a Service (CaaS)—has been introduced. An example of container management system is Docker‡
that allows developers to define containers for applications. Containers share the same kernel with
the host, hence they are defined as lightweight virtual environments compared to virtual machines
(VMs) that provide a layer of isolation between workloads without the overhead of hypervisor-
based virtualization. CaaS can lie between IaaS and PaaS: while IaaS provides virtualized compute
resources and PaaS provides application specific runtime services, CaaS glues these two layers
together by providing isolated environments for the deployed applications (or different modules
of an application). As illustrated in Figure 1, CaaS services are usually provided on top of IaaS’
virtual machines. CaaS providers, such as Google and AWS, argue that containers offer appropriate
environment for semi-trusted workloads, while virtual machines provide another layer of security
for untrusted workloads.
∗ Correspondence to: Sareh Fotuhi Piraghaj, Cloud Computing and Distributed Systems (CLOUDS) Laboratory,
Department of Computing and Information Systems, The University of Melbourne, Australia.
† E-mail: [email protected]
‡ Docker: https://www.docker.com/
Cont 1 Cont 2
... Cont n
VM 1
Guest OS
VM 2
Guest OS
...
VM n
Container
Guest OS
Separate Separate Separate
Engine
Separate Separate Separate
User Space User Space User Space Kernel & Kernel & Kernel &
User Space User Space User Space
Shared Libraries Hypervisor/ VMM
Kernel of the Host Kernel of the Host
Cont 1
Cont 2
Cont 3
Cont 4
Cont 1
Cont 2
Container
Container
Engine
Engine
Libs Libs
VM A VM B
Hypervisor
Server
Resource management policies to ensure Quality of Service (QoS), avoid energy wastage, and
resource fragmentation are an integral part of cloud systems. Innovating and comparing resource
management strategies require evaluation environments that facilitate the design of experiments
while making them repeatable and accurate. Simulators are useful tools to build such evaluation
environment in the cloud context [1]. They are particularly helpful at early stages of research to
identify and eliminate ineffective polices or when accessing large scale distributed infrastructure is
costly and not possible. Testing and evaluating resource management policies in the first verification
stage in a production environment is both risky and costly. In this respect, a number of simulation
tools are developed for evaluation of algorithms that are specifically designed for cloud computing
environments. Although containers are going to be one of the dominant application deployment
models in the cloud, most of the simulators consider VMs as the building blocks of the virtualized
cloud data centers.
To the best of our knowledge, no simulators introduced modeling for containerized cloud
environments. In this paper, we propose a simulation environment, named “ContainerCloudSim”,
for studying resource management techniques in CaaS environments. ContainerCloudSim is
developed as an extension of the ClouSim simulation toolkit [2]. It provides an environment
for evaluation of resource management techniques such as container scheduling, placement,
and consolidation of containers. As depicted in Figure 2, ContainerCloudSim uniquely enables
researchers to consider resource management techniques for both virtualization types including the
Operating System level virtualization/containers (Figure 1a) and system level virtualization/VMs
(Figure 1b) side by side. For the Virtual Machine type, applications execute inside virtual machines
and for the CaaS model, applications execute inside containers while the containers are placed
in virtual machines. The proposed simulator models a container migration by stopping the
container on the source host and starting it with a realistic delay on the destination host, which
closely resembles current containerized environments. Moreover, ContainerCloudSim offers an
environment to evaluate various (power-aware) resource management algorithms by providing
diverse power models in a data center.
2. RELATED WORK
emulate more complex cases beyond the original trace investigating the challenges in resource
management in cloud computing environment. GloudSim can also reproduce check-pointing/restart
events considering the Google trace leveraging Berkeley Lab Checkpoint/Restart (BLCR) tool. Like
GloudSim [10], ContainerCloudSim also provides the support for incorporating the cloud data
centers’ resource utilization traces. Currently, the workload models of PlanetLab [11] is utilized
as the container’s usage data.
iCanCloud [12] is a simulation tool that aims to predict the trade-offs between cost and
performance of a set of applications executed in a cloud data center. iCanCloud can be used by
different users including basic cloud users and distributed application developers. The simulation
platform of iCanCloud provides a scalable, fast, and easy-to-use tool helping users to obtain
results quickly considering their budget limits. iCanCloud is based on SIMCAN† and provides a
graphical user interface that enables users to execute the experiments. In addition, it models network
communication between machines and supports parallel simulations, hence an experiment can be
executed across multiple machines.
In CloudAnalyst, Wickremasinghe et al. [13] extended CloudSim to enable applications
workload description including the number of users, data centers, and cloud resources along with
the location of both users and data centers. CloudAnalyst can be used by application developers or
testers to determine the best strategic allocation of resources among the available cloud data centers.
Data centers can be selected strategically considering the application workload and the available
budget. Like iCanCloud [12], CloudAnalyst also provides a graphical interface which simplifies the
process of building a number of simulation scenarios.
In TeachCloud [14], CloudSim is extended with a model for MapReduce application and an
integrated comprehensive workload generator called Rain. It enables experiments with various cloud
components including processing elements, storage, networking, and data centers. Like the two
aforementioned simulators [12, 13], it also supports a graphical interface that enables building and
implementing customized network topologies. It also provides a VL2 network topology model.
TeachCloud, as a comprehensive and easy-to-use tool, can be utilized as a educational tool that
allows students to conduct experiments in a cloud system. As a future work, we will provide a
graphical interface for ContainerCloudSim which shows the utilization details of the modeled data
centers components.
CDOSim [15] is developed extending CloudSim to model response times, SLA violations, and
costs of a cloud deployment option (CDO). CDOSim is oriented towards the cloud user side instead
of investigating the issues on the cloud provider side. The user behavior can be supplied through
workload profiles extracted from production monitoring data. CDOSim can simulate any application
as long as it can be modeled following the Knowledge Discovery Meta-Model (KDM) [16].
The notion of million instructions per second (MIPS) unit in CloudSim is refined to the mega
integer plus instructions per second (MIPIPS) unit. CDOSim is integrated in the cloud migration
framework CloudMIG [17] and is available as a plug-in for the CloudMIG Xpress tool. Contrary to
CDOSim [15], ContainerCloudSim is mainly focused on the provider’s side.
In NetworkCloudSim, Garg et al. [18] extended CloudSim to provide a scalable network and
generalized application model. It supports applications with communicating elements including
Message Passing Interface (MPI) and workflows. A network flow model is designed for cloud data
centers and bandwidth sharing is made possible. The extension is developed in such a way that users
can modify the network topology simply by modifying a configuration file.
Contrary to NetworkCloudSim [18], GreenCloud [19] is developed as a packet level simulator
on top of the NS2 simulator [20]. GreenCloud is specifically designed to investigate power
management schemes to achieve an energy efficient data center. These schemes include both
voltage and frequency scaling, and dynamic shutting down of network and compute components.
It enables the capture of details of the energy consumption of data center’s computing and
network components. It also considers the packet-level communication patterns between network
† http://www.arcos.inf.uc3m.es/
˜simcan/
NetworkCloudSim
Energy Model
TeachCloud
...
CloudSim
• Management interfaces for containers, VMs, hosts, and data centers resources including
CPU, memory, storage. Particularly, it should provide the fundamental functionalities such as
provisioning of VMs to containers, dynamic monitoring of the system state, and controlling
the application execution inside the containers.
• Functionalities which enable researchers to plug in and compare new container scheduling and
provisioning policies. Container scheduling policies determine how resources are allocated to
containers and virtual machines, and can be extended to allow evaluation new strategies.
• Investigation of energy efficient resource allocation ability of provisioning algorithms. The
simulation environment should provide basic models and entities that can be utilized to
evaluate the energy aware provisioning algorithms. To this end, container migration and
consolidation have to be supported.
• Support for simulation scalability, as the number of container in a CaaS environment is much
higher than the number of virtual machines in a data center.
ContainerCloudSim
VM Life-cycle Management
Virtual Machine (VM)
Service
Data Center
Host
Management Service
4. SIMULATOR ARCHITECTURE
Workload Management Service: This service takes care of clients’ application registration,
deployment, scheduling, application level performance, and health monitoring.
Container Life-cycle Management Service: This service is responsible for container life-cycle
management. This includes creating containers and registering them in the system, starting,
stopping, restarting, and migrating containers from a host to another host, or destroying the
container. In addition, this component is responsible for managing the execution of tasks
which are running inside the container and monitoring their resource utilization.
VM Life-cycle Management Service: This service is responsible for VM management and
consists of VM creation, start, stop, destroy, migration and resource utilization monitoring.
Resource Management Service: This service manages the process of creating VMs/containers on
hosts/VMs that satisfy their resource requirements and other placement constraints such as
software environment. It consists of three main services:
Resource Allocation Service: This service manages the allocation of resources to VMs and
containers. It consists of the following services:
• Container Allocation Service: This service is equipped with policies that determine
how VM resources are allocated (scheduled) to containers.
• VM Allocation Service: This service is equipped with policies that determine how
hosts’ resources are allocated (scheduled) to VMs.
Power and Energy Consumption Monitoring Service: This services is responsible for measur-
ing the power consumption of hosts in the data center and is equipped with the necessary
power models.
Data Center Management Service: This services is responsible for managing data center
resources, powering on and off the hosts, and monitoring the utilization of resources.
For implementing the aforementioned functionalities, CloudSim Discrete Event simulator Core
is used to provide basic discrete event simulation functionalities and modeling of basic cloud
computing elements. Since CloudSim entities and components communicate through message
passing operations, the core layer is responsible for managing events and handling interactions
between components. The main classes of ContainerCloudSim are depicted in Figure 5. In
this section, we go through the details of these classes. ContainerCloudSim implementation is
constituted of two main parts simulated elements and simulated services. The simulated elements
include:
• Datacenter: The hardware layer of the cloud services is modeled through the Datacenter
class.
• Host: The Host class represents physical computing resources (servers). Their configurations
are defined as processing capability that is expressed in MIPS (million instructions per
second), memory, and storage.
• VM: This class models a VM. Virtual Machines are managed and hosted by a Host. Attributes
of VM are memory, processor, and its storage size.
• Container: This class models a Container that is hosted by a VM. Attributes of Containers
are accessible memory, processor, and storage size.
• Cloudlet: The Cloudlet class models applications hosted in a container in cloud data centers.
Cloudlet length is defined as Million Instructions (MI) and it has functionalities of its
predecessor in CloudSim package including StartTime and status of execution (such as
CANCEL, PAUSED, and RESUMED)
In addition, simulated services available in ContainerCloudSim are:
• VM Provisioning: The VM provisioning policy, which assigns CPU cores from the host to
VMs, is considered as a field of the Host class. Similar to CloudSim, the Host component
SimEntity
Container Scheduler
Container
Cloudlet Scheduler
implements the interfaces that provide modeling and simulation of classes that implement
CPU cores management. For example, a VM can have dedicated cores assigned to it (pinning
of cores to VM) or can share cores with other VMs in the host.
• Container Provisioning: The simulator provides container provisioning at two levels: VM
level and container level. At the VM level, the amount of VM’s total processing power that is
assigned to each container is specified. Whereas at the container level the container can assign
a fixed amount of resources to each of the application services that are hosted on it. To enable
compatibility with CloudSim, a task unit is considered as a finer abstraction of an application
service that is hosted in the container. Time-shared and space-shared provisioning policies are
implemented for both levels in the current version of the ContainerCloudSim (as depicted in
Figure 6). In addition, ContainerRamProvisioner is an abstract class that represents the
provisioning policy utilized for allocating the virtual machine’s memory to containers. A
container can be hosted on a VM only if the ContainerRamProvisioner component assures
that the VM has the needed amount of free memory. If the memory requested by the container
is beyond the VM’s available free memory, the ContainerRamProvisioner rejects the request.
For provisioning the bandwidth, the abstract class named ContainerBwProvisioner models
the policy for provisioning of bandwidth of the containers. The role of this component is
handling network bandwidth allocation to a set of competing containers. This class can be
extended to contain new policies to include the requirements of various applications.
Figure 6 illustrates a simple provisioning scenario. In this figure, containers A1 and A2 are
hosted on a host with 2 cores. In the space-shared scenario, only one of the two A1 and
A2 containers can run at a given instance of time. Therefore, A2 can only be assigned the
core when A1 finishes its execution. In this scenario, each container requires 2 cores for
its execution. However, in the time shared scenario, each container receives a time slice on
each processing core and each component receives a variable amount of the processing power
during its execution. The available amount of processing power for each container can be
estimated through the calculation of the number of active components that are hosted on each
VM. The provisioning policy is defined by ContainerScheduler, which is an abstract class
and is implemented by a VM component. More application-specific processor sharing policies
can be implemented by overriding the functionalities of this class.
• CloudletScheduler: The same relationship between container and VM is held between
applications (called Cloudlets) and containers. The CloudletScheduler abstract class can be
extended to implement different algorithms to identify the share of processing power among
Cloudlets that are running in a container. Both types of provisioning policies are included
Figure 6. Time-shared and space-shared provisioning concepts for containers A1 and A2 running on a VM.
Container n
UpdateCloudletsProcessing()
time of next event time of next event
VirtualMachine n Container 0
UpdateContainersProcessing() UpdateCloudletsProcessing()
time of next event
Container n
UpdateCloudletsProcessing()
smallest time of next event time of next event time of next event
Container n
UpdateCloudletsProcessing()
time of next event time of next event
VirtualMachine n Container 0
UpdateContainersProcessing() UpdateCloudletsProcessing()
time of next event
Container n
UpdateCloudletsProcessing()
smallest time of next event time of next event time of next event
the earliest completion time of jobs running on it. At VM level, the smallest completion time among
all containers is returned to the host. Finally, at host level the smallest completion time among all
VMs is returned to Datacenter. The earliest time value returned to the Datacenter class is used to set
the time in which the whole process will be repeated. An event is then scheduled in the simulation
core for the calculated time, which dictates the next simulation step, and therefore progresses the
simulation.
Figure 8. A common architecture for the studied use cases: VMM sends the data including the status of
the host along with the list of the containers to migrate to the consolidation manager. The consolidation
manager decides about the destination of containers and sends requests to provision resources to the selected
destination.
manager, which is deployed on a separate machine, decides about the new placement of containers
and sends requests to provision resources to the destination host.
172
210
159
10 20 30 40 50 60 70 80 90 209
50 60 70 80 90
Percentile
Percentile
(a) The number of containers which are success-
fully allocated to the VMs considering each pre- (b) The number of container migrations happened
defined percentiles of the workload. during the experiments.
Figure 9. Impact of container’s overbooking on the number of successfully allocated containers along with
the number of container migrations happened for the experiments with the same number of allocated
containers.
are chosen to migrate. The simulation set up including the configurations of the servers, containers,
and virtual machines are all shown in Table I.
The output of the simulation is depicted in Figure 9a and shows that the number of successfully
allocated containers decreases as the percentile increases. The higher percentile results in a smaller
number of containers accommodated on each VM. The same trend exists when the number of
container migrations is considered (Figure 9b). The volatility of the workload is the key factor
that affects the percentile value. Thus, more volatile workloads would show more difference in the
simulation results.
Energy Consumption(KWh)
Container Migration
0.250
SLA Violation
150 170
0.225
160
100
0.200
150
0.175
50
MC
MU
MC
MU
MC
MU
(a) (b) (c)
Figure 10. Impact of container selection algorithm on the container migration rate (per 5 minute), SLA
violations and the total data center energy consumption.
0.200
200
SLA Violation
70
0.175
180
60 0.150 160
Figure 11. Impact of initial container placement algorithm on the container migration rate (per 5 minute),
SLA violations, and data center energy consumption.
The SLA in this experiment is considered violated if the virtual machine on which the container is
hosted does not receive the required amount of CPU that it requested. Therefore, the SLA metric is
defined as the fraction of the difference between the requested and the allocated amount of CPU for
each VM. The SLA metric is shown in Equation 1 [23] in which Ns , Nvm , and Nc are the number
of servers, VMs and containers respectively. In this equation, CPUr(vmj,i ,tp ) and CPUa(vmj,i ,tp )
correspond to the requested and the allocated CPU amount to vmj on server i at time tp .
Nvm X
Ns X Nc
X CPUr (vmj,i , tp ) − CPUa (vmj,i , tp )
SLA = (1)
CPUr (vmj,i , tp )
i=1 j=1 p=1
As shown in Figure 10, adding the containers with the maximum CPU utilization to the migration
list results in less container migrations, energy consumption, and SLA violations and thus should
be the preferred policy to be utilized by CaaS providers.
2.00
1.00
0.40
0.25
Figure 12. The container start up delay for running 1 to 5000 concurrent containers in each of the studied
Amazon EC2 instances.
most full virtual machine in terms of the CPU utilization, results in a higher container migration rate.
Consequently, the aforementioned algorithm results in higher violations and energy consumption.
In contrast, FirstFit results in less number of migrations and energy consumption, and thus should
be the preferred policy to be utilized if the goal of the provider is to reduce energy consumption.
750
80
70
700
60
Average Memory Usage (MB)
650
40
550
30
20
500
50 500 1000 2000 3000 4000 5000 0 1000 2000 3000 4000 5000
Number of Containers Number of Containers
(a) (b)
Figure 13. Impact of increasing the number of containers on the average memory usage and the execution
time of the simulator.
version of the simulator, we utilized the average container startup delay for all studied instance
types, which is equal to 0.4 seconds.
simulations on the scale expected in the context of CaaS. We also believe that the availability of our
simulator will energize research in CaaS policies.
As future work, we plan to extend ContainerCloudSim to visualize spatio temporal behavior
of nodes, VMs and containers in a data center. We also plan to model the connectivity between
containers for supporting modeling of application such as Web applications and MapReduce-like
computing environments.
SOFTWARE AVAILABILITY
The ContainerCloudSim code is available for download along with CloudSim software from
website: http://www.cloudbus.org/cloudsim.
REFERENCES
1. Zhao W, Peng Y, Xie F, Dai Z. Modeling and simulation of cloud computing: A review. Proceedings of the 2012
IEEE Asia Pacific Congress on Cloud Computing (APCloudCC), 2012; 20–24.
2. Calheiros RN, Ranjan R, Beloglazov A, De Rose CA, Buyya R. CloudSim: a toolkit for modeling and simulation
of cloud computing environments and evaluation of resource provisioning algorithms. Software: Practice and
Experience 2011; 41(1):23–50.
3. Stojmenovic I. Simulations in wireless sensor and ad hoc networks: matching and advancing models, metrics,
and solutions. Communications Magazine, IEEE December 2008; 46(12):102–107, doi:10.1109/MCOM.2008.
4689215.
4. Ettikyala K, Devi YR. Article: A study on cloud simulation tools. International Journal of Computer Applications
April 2015; 115(14):18–21. Full text available.
5. Lim SH, Sharma B, Nam G, Kim EK, Das C. MDCSim: a multi-tier data center simulation, platform. Proceedings of
the 2009 IEEE International Conference on Cluster Computing and Workshops, 2009; 1–9, doi:10.1109/CLUSTR.
2009.5289159.
6. Gupta SKS, Banerjee A, Abbasi Z, Varsamopoulos G, Jonas M, Ferguson J, Gilbert RR, Mukherjee T. GDCSim: a
simulator for green data center design and analysis. ACM Trans. Model. Comput. Simul. Jan 2014; 24(1):3:1–3:27.
7. Sriram I. SPECI, a simulation tool exploring cloud-scale data centres. Cloud Computing, Lecture Notes in Computer
Science, vol. 5931, Jaatun M, Zhao G, Rong C (eds.). Springer Berlin Heidelberg, 2009; 381–392.
8. Ostermann S, Plankensteiner K, Prodan R, Fahringer T. GroudSim: an event-based simulation framework for
computational grids and clouds. Proceedings of the 2010 Conference on Parallel Processing, Euro-Par 2010,
Springer-Verlag: Berlin, Heidelberg, 2011; 305–313.
9. Tighe M, Keller G, Bauer M, Lutfiyya H. DCSim: a data centre simulation tool for evaluating dynamic virtualized
resource management. Proceedings of the 2012 8th international conference on Network and service management
(cnsm) and 2012 workshop on systems virtualiztion management (svm), 2012; 385–392.
10. Di S, Cappello F. GloudSim: google trace based cloud simulator with virtual machines. Software: Practice and
Experience 2014; .
11. Park K, Pai VS. CoMon: a mostly-scalable monitoring system for planetlab. SIGOPS Operating Systems Review
Jan 2006; 40(1):65–74.
12. Nez A, Vzquez-Poletti J, Caminero A, Casta G, Carretero J, Llorente I. iCanCloud: a flexible and scalable cloud
infrastructure simulator. Journal of Grid Computing 2012; 10(1):185–209.
13. Wickremasinghe B, Calheiros R, Buyya R. CloudAnalyst: a cloudsim-based visual modeller for analysing cloud
computing environments and applications. Proceedings of the 2010 24th IEEE International Conference on
Advanced Information Networking and Applications (AINA), 2010; 446–452, doi:10.1109/AINA.2010.32.
14. Jararweh Y, Alshara Z, Jarrah M, Kharbutli M, Alsaleh MN. TeachCloud: a cloud computing educational toolkit.
International Journal of Cloud Computing 2013; 2(2-3):237–257. PMID: 55269.
15. Fittkau F, Frey S, Hasselbring W. CDOSim: simulating cloud deployment options for software migration support.
Proceedings of the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA), 2012
IEEE 6th International Workshop on the, 2012; 37–46.
16. Prez-Castillo R, de Guzmn IGR, Piattini M. Knowledge discovery metamodel-iso/iec 19506: A standard to
modernize legacy systems. Computer Standards and Interfaces 2011; 33(6):519 – 532.
17. Frey S, Hasselbring W. Model-based migration of legacy software systems into the cloud: The CloudMIG approach.
Softwaretechnik-Trends 2010; 30(2):84–85.
18. Garg S, Buyya R. NetworkCloudSim: modelling parallel applications in cloud simulations. Proceedings of the 2011
Fourth IEEE International Conference on Utility and Cloud Computing (UCC), 2011; 105–113.
19. Kliazovich D, Bouvry P, Khan S. GreenCloud: a packet-level simulator of energy-aware cloud computing data
centers. The Journal of Supercomputing 2012; 62(3):1263–1283.
20. The network simulator - ns-2. http://www.isi.edu/nsnam/ns/. (Accessed on 11/30/2015).
21. Calheiros RN, Netto MA, De Rose CA, Buyya R. Emusim: an integrated emulation and simulation environment
for modeling, evaluation, and validation of performance of cloud computing applications. Software: Practice and
Experience 2013; 43(5):595–612.
22. Tomas L, Klein C, Tordsson J, Hernandez-Rodriguez F. The straw that broke the camel’s back: Safe cloud
overbooking with application brownout. Proceedings of the 2014 International Conference on Cloud and
Autonomic Computing (ICCAC), 2014; 151–160, doi:10.1109/ICCAC.2014.10.
23. Beloglazov A, Buyya R. Optimal online deterministic algorithms and adaptive heuristics for energy and
performance efficient dynamic consolidation of virtual machines in cloud data centers. Concurrency and Computing
: Practice and Experience Sep 2012; 24(13):1397–1420.
24. Blackburn M, Grid G ( (eds.)). Five ways to reduce data center server power consumption. The Green Grid, 2008.
25. Mao M, Humphrey M. A performance study on the vm startup time in the cloud. Proceedings of the 2012 IEEE
Fifth International Conference on Cloud Computing, CLOUD ’12, IEEE Computer Society: Washington, DC, USA,
2012; 423–430.