Elsevier

Information Sciences

Volumes 397–398, August 2017, Pages 168-186
Information Sciences

Multi-resource scheduling and power simulation for cloud computing

https://doi.org/10.1016/j.ins.2017.02.054Get rights and content

Abstract

Resource scheduling and energy consumption are the two of most significant problems in cloud computing. Owing to the scale and complexity of various resources, it is often difficult to conduct the theoretical analysis of the performance and power consumption of scheduling and resource provisioning algorithms on Cloud testbeds. Thus, simulation frameworks are becoming important ways to complete evaluation. CloudSim is one of the most popular and powerful simulation platforms for cloud computing. However, it requires much improvement to enable CloudSim to perform multi-resource or energy-aware simulations. To overcome this problem, we have extended CloudSim with a multi-resource scheduling and power consumption model, which allows more accurate valuation of power consumption in dynamic multi-resource scheduling. Extensive experiments on six combinations of task assignment algorithms and resource allocation algorithms demonstrate the powerful functionality and superior convenience of the extended CloudSim, MultiRECloudSim. Different task assignment and resource scheduling policies will bring about very different energy cost. We could easily repeat the experiment to find out the efficiency and the power consumption of the algorithms under diverse arguments with MultiRECloudSim.

Introduction

Cloud computing [2], [6], [11], [31] has rapidly attracted more and more attention in both academic and industry community. In cloud computing, server consolidation is an approach to the efficient usage of server resources in order to reduce the total number of servers that user requires [34]. The growth of server consolidation is owing to virtualization technology which enables multiple VMs to share the physical resources of a computer. The total resources of VMs shared the same server must not exceed that of the server while the number of servers is required to be as small as possible. Server virtualization provides technical ways to consolidate multiple servers bringing about increased utilization and energy saving. As for resource scheduling for tasks, Resource provisioning consists of two provisioning plan for allocating resources in cloud. These are long term Reservation plan and short term On-demand plan [9]. On-demand plan is a scheme where the users can obtain resources when they need. Reservation plan is a scheme where the resources could be reserved earlier. The on-demand plan could satisfy user's need but it usually charges higher fees compared to Reservation plan. The drawback of Reservation plan is obvious as well. One is the under provisioning problem in which the resources could not fully meet the need due to dynamic varying workload. Some other problem is over provisioning, where the reserved resources is provisioned more than what actually needed. Thus, the resources reserved will not be fully used and results in energy waste. It remains an important and difficult issue to take full advantage of various resources and reduce power consumption. Resource utilization and power consumption in cloud computing are tightly coupled. A host with low resource utilization typically still consumes much power in comparison with the power consumption when it is being fully utilized. For example, recent studies reported in [4], [13] indicate that average resource utilization of the hosts in most datacenters can be as low as 20% and that an idle host still consumes as much as 60% of the power consumed by a fully utilized host. On the other hand, a lot of researches [3], [15], [16], [17], [32], [35] focus on multi-resource allocation and they usually perform simulations on a cluster instead of simulators. We think one of the reasons may be most of the cloud simulators do not support multiple resources. Furthermore, a few papers discuss about multi-resource allocation and power consumption at the same time, it is a non-trivial task to evaluate a candidate solution on real Cloud platforms. Firstly, demands and supply patterns, system scale and platform infrastructure vary from one cloud to another. Moreover, background workloads in a cloud change dynamically. It is very difficult, if not impossible, to repeat the experiments with the exactly same settings to compare two candidate solutions. Secondly, many factors may influence the application performance and the power consumption of the supporting data center, such as users’ QoS (Quality of Service) requirements, various dynamic workloads, complex scheduling strategies on multiple resources and different power consumption pattern of diverse hardware. Thirdly, the real experiments are time-consuming and sometimes impossible because it is typically required to perform a number of test runs under a variety of experimental settings. Thus, performing simulation experiments through simulation tools become an alternative, viable experimentation methodology. The simulation experiments are controllable and the experimental results can be reproduced, which enables the researchers to compare candidate solutions in fair experimental environments.

There is one more important problem to be discussed. The implementation of power simulation of CloudSim assumes that there is just one cloudlet which is working as an online service. It only models a simple scenario and cannot meet a variety of complex need of energy simulation. To carry out power simulation, CloudSim uses dynamic workload model. This model works well under the above assumption, but it's not applicable for the multiple-task scenario because the dynamic workload model of CloudSim works if and only if we know the exact time when the task starts and ends. However, the multiple task scenario we discuss in this paper, tasks are scheduled by different allocation policies. We don't know the exact time when they start or end during the scheduling process. We find out the limitations of CloudSim after we read through the source code. Only after a task ends, we know its finished time. They are listed as follows.

  • 1.

    CloudSim to date only supports single-resource tasks [25], [26]. The current version of CloudSim appears to support various types of resources on the surface, including CPU, memory and bandwidth. In the process of task submission and scheduling, however, it does not consider memory and bandwidth as constraints. No matter how much memory or bandwidth the tasks demand (even if the demand is more than the physical capacity of the host), CloudSim does not consider it as an error. Moreover, in power consumption simulation, CloudSim only considers the power consumed by CPU, and it does not take into account the power by memory accessing or communication.

  • 2.

    CloudSim only supports the single-task running in power simulation. The following comment is added in the source code of the “CloudletSchedulerDynamicWorkload” component in CloudSim: “CloudletSchedulerDynamicWorkload implements a policy of scheduling performed by a virtual machine assuming that there is just one cloudlet which is working as an online service.” This comment explicitly tells its users that CloudSim does not support the case where multiple tasks are running simultaneously. Consequently, CloudSim is not able to perform power simulation of multiple task scheduling. Due to this exact limitation, researchers seldom use CloudSim to conduct research on power consumption. Instead, they usually do experiments on physical hosts [5], [12], [20], [22].

  • 3.

    There is a problem concerning about the implementation of dynamic workload in CloudSim. The dynamic workload is implemented in the following way. It obtains the utilization data by reading the workload file and calculates the resource utilization using the simulated time. Here comes the problem of the implementation. If a task starts at 10 s and ends at 30 s, then the data before 10 s and after 30 s in the workload file are not utilized. However, we generally do not know the exact time when the task starts and ends. Actually, we don't want to know when every cloudlet start or end before the simulation because if we do, we have to match the running time of every cloudlet with corresponding part of data in workload file.

The motivation of this paper is to provide a fast and convenient approach to evaluate the multi-resource scheduling and power-aware algorithms. It provides a multi-resource multiple task scheduling model and it is easy to design different task assignment policy for different scenarios, for instance, CPU intensive, ram intensive and comprehensive scheduling concerning multi-resource shows various patterns. In addition, MultiRECloudSim has the multi-resource power simulation mechanism and power model interface, which provides a far more accurate power consumption result about multiple resources compared with CloudSim. Therefore, we extend CloudSim 3.03 by overcoming the limitations of CloudSim discussed above. The enhanced CloudSim is called MultiRECloudSim. The contribution of us is the five new features of MultiRECloudSim. They are summarized as follows.

  • 1.

    Multi-resource cloudlet. Cloud application have diverse resource demands. For instance, machine learning tasks are CPU-intensive while sort tasks are memory-intensive. Tasks are constrained on multiple resources, e.g., reduce tasks that are both memory and network-intensive. The extended cloudlet supports CPU, memory, IO and bandwidth. A VM is able to allocate the resources to cloudlets within its resource capacity and then runs the cloudlets, which makes it possible to design a variety of more realistic resource allocation policies and task scheduling algorithms. We design and implemented a class called SimCloudlet for this purpose. The mechanism of multiple resources is supported by a series of related classes, including SimPowerHost, SimPowerVm, CloudletAssignmentPolicy, SimCloudletSchedulerDynamicWorkload, etc. The SimCloudlets are assigned to SimPowerVms placed on the SimPowerHosts. In running process, SimCloudlets are updated and scheduled by SimCloudletSchedulerDynamicWorkload. With these extensions, we could easily implement algorithms like dominant resource fairness (DRF) algorithm [3] and compare it with other algorithms.

  • 2.

    Cloudlet assignment policy. Application workloads in the cloud are dynamic and change over time, which means workloads become imbalanced among VMs as well as diverse resources. It's necessary to balance the multiple resources of VMs to raise the resource utilization and reduce power consumption. The task assignment policy is a key algorithm that relates to throughput, resource utilization and power consumption. We implement a new class called CloudletAssignmentPolicy to complete this task independently, so as to loosen the coupling with the DatacenterBroker. By doing so, the task of defining various cloudlet assignment policies becomes very simple, especially in the case of multiple resource scheduling. The Main Resource Task Balance Algorithm we proposed is a multiple resource scheduling policy implemented by the subclass of CloudletAssignmentPolicy.

  • 3.

    Multi-resource cloudlet scheduling and resource allocation scheme. After a task is assigned to VM, it enters to the task waiting queue waiting for scheduling. The task scheduler of VM will schedule the task according to the task's priority, the demand for multiple types of resources, the arrival time, etc. In CloudSim, the class CloudletScheduler is used to schedule the cloudlets submitted to VMs and we extend its subclass CloudletSchedulerDynamicWorkload to support the scheduling of multiple multi-resource cloudlets. Specifically, we implement a cloudlet resource allocator for each type of resource (CPU, memory, IO and bandwidth). The role of the resource allocator is to allocate and manage resource independently. Moreover, this extension makes it easy to define different resource allocation policies. In MultiRECloudSim, we implement two types of modes: reservation scheme and non-reservation scheme. Reservation scheme refers to the case where the maximum amount of CPU resource is reserved for a cloudlet when it starts and therefore there is certainly no shortage of CPU resource for this cloudlet. It's the same as long term Reservation plan mentioned above. The CPU demand of a cloudlet under this mode is satisfied all the time. However, the disadvantage of this scheme is that the CPU resource will be wasted on idle time. In contrast, the non-reservation scheme refers to the case where the reservation is not supported. Currently, CPU supports these two schemes while the other three resources only support reservation scheme. We implemented two algorithms: First-come-first-served and Max-Min fairness for non-reservation scheme.

  • 4.

    Multi-resource power consumption simulation. The increasing costs of power delivery and cooling and the trend toward higher-density server cloud systems, have created a growing demand for better power management for cloud computing. Scholars have done a lot of work on power models with respect to different resources. [1], [5], [17]. These models may be evaluated with MultiRECloudSim. The power model in MultiRECloudSim is a function of power consumption over resource utilization. Power models vary from resource to resource. With the power models, we can perform the power simulations reflecting the real situations.

  • 5.

    Progress-based multi-resource cloudlet. Progress-based Cloudlet aims to overcome the disadvantage of CloudSim that the utilization data in the workload file are not fully utilized in dynamic workload simulation. It is a further extension to SimCloudlet. The principle of the progress-based cloudlet is that the utilization data are read by the progress percentage of the cloudlet instead of by simulated time. This feature enables the utilization data in a workload file to be all utilized for various workloads, regardless of the running time of the cloudlet. Similarly, the progress-based multi-resource mechanism are supported by a series of progress-based related classes.

The paper is organized as follows. Section 2 discusses the related cloud simulators and some improved simulators based on CloudSim. The third section focuses on the models we design and in Section 4, we introduce the implementation of MultiRECloudSim. An evaluation including static workload and dynamic workload is provided in Section 5 and the paper is concluded in Section 6.

Section snippets

Related work

Although cloud computing has been advancing rapidly in recent years, there are only a few existing simulation frameworks for Cloud computing nowadays due to the complexity of the nature. Main cloud computing simulators are CloudSim [8], GreenCloud [21] and MDCSim [23]. Green-Cloud is an extension to the NS2 network simulator for the evaluation of power-aware data centers in cloud environments. It is a packet-level simulator, focusing mainly on cloud communication power consumption, providing a

Design of MultiRECloudSim

With MultiRECloudSim, we investigate the effective policies on assigning multi-resource cloudlets to VMs, allocating multiple resources to VMs and cloudlets, scheduling multi-resource cloudlets to save energy, etc. Next, we present the models in MultiRECloudSim in detail.

Implementation of MultiRECloudSim

There are lots of classes in MultiRECloudSim, we could mainly divide them into three categories. First are the fundamental elements, including SimDatacenter, SimDatacenterBroker, SimPowerHost, SimPowerVm, SimCloudlet, UtilizationModel and their subclasses. Second are the policy classes that decide all kinds of allocation scheduling algorithms, such as CloudletAssignmentPolicy, SimCloudletSchedulerDynamicWorkload. The last are the resource manager classes that allocate and record resources, for

Experiments and evaluation

According to whether the demand of CPU resource changes dynamically, there are two types of workload: static workload and dynamic workload. We conduct experiments to evaluate MultiRECloudSim with both types of workload. In static load, the tasks’ CPU demand is fixed throughout the execution, while in dynamic workload the CPU demand varies as the task execution progresses (progress-based cloud task). The change model (strategy) is determined by the utilization data in workload file.

The result is

Discussion

MultiRECloudSim presented in this paper is extended to CloudSim. It provides us a convenient way to evaluate the multi-resource scheduling power-aware algorithms and test the experiment parameters. We concentrate on the source code of CloudSim and find out some incomplete designs of CloudSim, especially on multiple resources and power simulation. We overcome the drawbacks and make our contributions as follows.

  • 1.

    Multi-resource cloudlet and progress-based multi-resource cloudlet. CloudSim to date

Conclusions

Owing to the support for flexible, scalable, efficient, and repeatable evaluation of resource scheduling and allocation policies for different applications, using simulation tools such as CloudSim is becoming more and more popular. Fast evaluation of scheduling and resource allocation algorithms within data centers becomes available. Therefore, we present a novel CloudSim-based simulation framework which supports the modeling of multi-resource scheduling and power consumption to make up the

Acknowledgements

This work is partially supported by the National Natural Science Foundation of China (Grant No. 61402183), Guangdong Natural Science Foundation (Grant No. S2012030006242), Guangdong Provincial Scientific and Technological Projects (Grant Nos. 2016A010101007, 2016B090918021, 2014B010117001, 2014A010103022 and 2014A010103008), Guangzhou Science and Technology Projects (Grant Nos. 201607010048 and 201604010040) and the Fundamental Research Funds for the Central Universities, SCUT (No. 2015ZZ0098).

References (40)

  • R.N. Calheiros et al.

    CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms

    Softw. Pract. Exp.

    (2011)
  • S. Chaisiri et al.

    Optimization of resource provisioning cost in cloud computing

    IEEE Trans. Serv. Comput

    (2012)
  • W. Chen et al.

    WorkFlowSim: a toolkit for simulating scientific workflows in distributed environments in: E-Science (e-Science)

  • M. Dabbagh, B. Hamdaoui, M. Guizani, A. Rayes, An energy-efficient VM prediction and migration framework for...
  • H. David et al.

    Memory power management via dynamic voltage/frequency scaling

  • X. Fan et al.

    Power provisioning for a warehouse-sized computer

    ACM Sigarch Comput. Archit. News

    (2007)
  • S.K. Garg et al.

    Networkcloudsim: Modelling parallel applications in cloud simulations

  • A. Ghodsi et al.

    Dominant resource fairness: fair allocation of multiple resource types

    NSDL

    (2011)
  • H. Goudarzi et al.

    Multi-dimensional SLA-based resource allocation for multi-tier cloud computing systems

  • R. Grandl et al.

    Multi-resource packing for cluster schedulers

    ACM SIGCOMM Comp. Commun.

    (2014)
  • Cited by (79)

    • IoTSim-Osmosis: A framework for modeling and simulating IoT applications over an edge-cloud continuum

      2021, Journal of Systems Architecture
      Citation Excerpt :

      By using DCSim, energy-aware algorithms can be effectively evaluated. Multi-RECloudSim [27] is an extension of CloudSim focusing on modeling and simulating of multi-resource task executions. It provides rich features in terms of power modeling and multi-resource task scheduling.

    View all citing articles on Scopus
    View full text