Cloud computing has emerged as a computing model aiming at providing computing resources as a service according to the pay-per-use paradigm [1], [2] . Cloud computing is based on full virtualisation technology where a single physical machine is able to host several virtual machines which in turn are completely isolated. The net effect of having shared resource usage is having fewer physical servers with higher utilisation per server which will effectively minimise the hardware costs and the operational expenses [3], [4]. However, the flexibility enabled by virtualisation has produced new computational challenges of managing a shared pool of resources over the competing instances of applications or jobs. Resource allocation is the process of mapping the available resources to competing jobs based on the individual job requirements [5] . Computing resources must be well-managed to prevent overloading and waste of bandwidth, processing unit, memory, etc. This waste relates directly to significant financial loss for large Cloud service providers with regards to energy, operational cost as well as dissatisfaction of the Cloud service user [6], [7] . Resources allocation systems control how multiple VMs share the underlying Physical Machines (PM). Fast and efficient resource allocation algorithms can help to save energy and cost while increasing customer satisfaction. Resource allocation is typically performed in two stages as shown in Figure 1 . The first stage is the jobs assignment to the Virtual Machines: applications or jobs (both terms are used synonymously in the context of this paper) are executed on VMs. Each application has its own requirements of compute power, disk space and RAM space, communication bandwidth, priority, etc. (see [7] ). Any VM must meet these requirements when resources are allocated. This paper describes a novel approach making use of genetic algorithms to find optimal solutions for multi-dimensional vector bin packing problems with the goal to improve cloud resource allocation and Virtual Machines (VMs) consolidation. Two algorithms, namely Combinatorial Ordering First-Fit Genetic Algorithm (COFFGA) and Combinatorial Ordering Next Fit Genetic Algorithm (CONFGA) have been developed for that and combined. The proposed hybrid algorithm targets to minimise the total number of running servers and resources wastage per server. The solutions obtained by the new algorithms are compared with latest solutions from literature. The results show that the proposed algorithm COFFGA outperforms other previous multi-dimension vector bin packing heuristics such as Permutation Pack (PP), First Fit (FF) and First Fit Decreasing (FFD) by 4%, 34%, and 39%, respectively. It also achieved better performance than the existing genetic algorithm for multicapacity resources virtual machine consolidation (RGGA) in terms of performance and robustness. A thorough explanation for the improved performance of the newly proposed algorithm is given.
In 2016, a new, genetic-algorithm-based approach was presented REF to find an optimal solution to multidimensional bin packing problems aiming to improve resource allocation and the integration of cloud virtual machines.
Multi-Capacity Combinatorial Ordering GA in Application to Cloud resources allocation and efficient virtual machines consolidation
Future Gener. Comput. Syst.
Future Gener. Comput. Syst.
Computer Science