Cloud computing has recently drawn much attention due to the benefits that it can provide in terms of high performance and parallel computing. However, many industrial applications require certain quality of services that need efficient resource management of the cloud infrastructure to be suitable for industrial applications. In this paper, we focus mainly on the services, usually executed within virtual machines, allocation problem in the cloud network. To meet the quality of service requirements we investigate different algorithms that can achieve load balancing which may require migrating virtual machines from one node/server to another during runtime and considering both CPU and communication resources. Three different allocation algorithms based on Genetic Algorithm (GA), Particle Swarm Optimization (PSO) and Best-fit heuristic algorithm are applied in this paper. We evaluate the three algorithms in terms of cost/objective function and calculation time. In addition, we explore how tuning different parameters (including population size, probability of mutation and probability of crossover) can affect the cost/objective function in GA. Depending on the evaluation, it is concluded that algorithm performance is dependent on the circumstances i.e. available resource, number of VMs etc.