A performance evaluation between Docker container and Virtual Machines in cloud computing architectures
Resumen
ABSTRACT
Reliability, portability, scalability and availability of applications are essential features of cloud computing in the software architecture of enterprises, that usually makes use of virtual machines (VM’s). The hardware resources of cloud computing are always limited, for this reason it is important that the available resources are adequately allocated to obtain the best possible performance. The container technology is an alternative to VM as it allows to virtualize operating systems, package applications along with the required dependencies and deploy them as an instance of the operating system, permit applications to run independently, and consume only the necessary resources. This article, related to the area of parallel and distributed computing, presents a performance evaluation analyzing several aspects between VM’s and Docker containers, based on different benchmark tools. The test configuration is based on the principles of high performance computing (HPC), adapting the same setup used to measure the performance of the processing of big amount of data or information, demanding all out of the available hardware resources. The results of the tests reveal that Docker containers perform better compared to VM’s based on VirtualBox.
Keywords: Container, cloud computing, HPC, virtual machine, performance testing.
RESUMEN
La confiabilidad, portabilidad, escalabilidad y disponibilidad de las aplicaciones, son características esenciales que permiten implementar computación en la nube, usualmente basada en máquinas virtuales (VM’s), en una arquitectura de software empresarial. Los recursos de hardware de la computación en la nube, son siempre limitados. Por esto, y para obtener el mejor rendimiento posible, es importante que los recursos disponibles sean consumidos adecuadamente. La tecnología de contenedores representa una alternativa frente a las VM’s, debido a que nos permite virtualizar sistemas operativos, que empaquetan aplicaciones junto con las dependencias necesarias y las despliega en una instancia del sistema operativo. Esto permite que las aplicaciones se ejecuten de manera independiente y consuman solamente los recursos necesarios. En este artículo, relacionado con el área de computación paralela y distribuida, se presenta una evaluación del rendimiento computacional de dos tendencias de virtualización: VM’s y contenedores Docker, mediante el uso de varias herramientas tipo benchmark. Las pruebas se realizaron acorde a los principios de computación de alto rendimiento (HPC): similar a una evaluación de rendimiento para grandes cantidades de datos y procesamiento de información, esto es, implicando una alta demanda de los recursos de hardware disponibles. Los resultados de las pruebas demuestran que los contenedores Docker tienen un mejor rendimiento frente a las VM’s basadas en VirtualBox.
Palabras clave: Contenedor, computación en la nube, HPC, máquina virtual, pruebas de rendimiento.Descargas
Métricas
Citas
Barik, R. K., Lenka, R. K., Rao, K. R., & Ghos, D. (2016). Performance analysis of virtual machines and containers in cloud computing. 2016 International Conference on Computing, Communication and Automation (ICCCA), 1204-1210. doi:10.1109/CCAA.2016.7813925
Jacobson, D. M., & Canon, R. S. (2015). Contain this, unleashing Docker for HPC. Available at https://www.nersc.gov/assets/Uploads/cug2015udi.pdf
Chung, M. T., Quang-Hung, N., Nguyen, M. T., & Thoai, N. (2016). Using Docker in high performance computing applications. 2016 IEEE Sixth International Conference on Communications and Electronics (ICCE), 52-57. doi:10.1109/CCE.2016.756261, R. (n.d.). Bonnie++. Retrieved from http://www.coker.com.au/bonnie++/
Spoiala, C. C., Calinciuc, A., & Turcu, C. O. (2016). Performance comparison of a WebRTC server on Docker versus Virtual Machine. Retrieved 08 10, 2016, from 13 th International Conference on Development and Application Systems: http://www.dasconference.ro/dvd2016/data/papers/D78-paper.pdf
Docker. (2017). Docker. Retrieved from What is Docker: https://www.docker.com/what-docker
Kleyman, B. (2012). Hypervisor 101: Understanding the virtualization market. Retrieved from http://www.datacenterknowledge.com/archives/2012/08/01/hypervisor-101-a-look-hypervisor-market/
Morabito, R. (2016). A performance evaluation of container technologies on Internet of things devices. 2016 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), 999-1000. doi:10.1109/INFCOMW.2016.7562228
Parziale, L., Louie, B., Marins, E., Santos, T. N., & Venkatesan, S. (2012). Advanced networking concepts applied using Linux on IBM Systems. Retrieved from Performance tests and results: http://www.redbooks.ibm.com/redbooks/pdfs/sg247995.pdf
Peter Mell, T. G. (2011). The NIST definition of cloud computing. Retrieved from http://faculty.winthrop.edu/domanm/csci411/Handouts/NIST.pdf
Pipes, J. (2010). Performance tuning best practices. Retrieved from http://docs.linuxtone.org/ebooks/MySQL/performance-tuning-best-practices.pdf
Preeth, N. E., Mulerickal, F. J., Paul, B., & Sastri, Y. (2015). Evaluation of Docker containers based on hardware utilization. 2015 International Conference on Control Communication & Computing India (ICCC), 697-700. doi:10.1109/ICCC.2015.7432984
Sindi, M. (2009). HPL Calculator. Retrieved from http://hpl-calculator.sourceforge.net/HPL-HowTo.pdf
Sindi, M. (2016). Top500 HPL calculator. Retrieved from http://hpl-calculator.sourceforge.net/
Wes Felter, A. F. (2014). An updated performance comparison virtual machines and Linux containers. Retrieved 08 06, 2016, from IBM Research Report : http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf
Xavier, B., Ferreto, T., & Jersak, L. (2016). Time provisioning evaluation of KVM, Docker and Unikernels in a cloud platform. 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid), 277-280. doi:10.1109/CCGrid.2016.86
Descargas
Publicado
Cómo citar
Número
Sección
Licencia
Copyright © Autors. Creative Commons Attribution 4.0 License para cualquier artículo enviado a partir del 6 de junio de 2017. Para los manuscritos presentados anteriormente, se utilizó la licencia CC BY 3.0.
Usted es libre de:
Compartir — compartir y redistribuir el material publicado en cualquier medio o formato. |
Adaptar — combinar, transformar y construir sobre el material para cualquier propósito, incluso comercialmente. |
Bajo las siguientes condiciones:
Atribución — Debe otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si se realizaron cambios. Puede hacerlo de cualquier manera razonable, pero de ninguna manera que sugiera que el licenciador lo respalda a usted o a su uso. |
Sin restricciones adicionales: no puede aplicar términos legales o medidas tecnológicas que restrinjan legalmente a otros a hacer cualquier cosa que permita la licencia. |
Mayor información sobre este acuerdo de autoría y licencia, transferencia de derechos o solicitudes de reproducción, pueden ser consultados en este enlace.