Avaliação de Desempenho de um Proxy HTTP Implementado como Função Virtual de Rede
Resumo
Virtualização de funções de rede é um paradigma em que serviços de rede são virtualizados sobre hardware genérico. Nessa abordagem, um dos principais desafios é o desempenho quando comparado com o das soluções dedicadas. Este trabalho avalia o desempenho de um proxy HTTP em duas soluções de virtualização, o KVM e o Docker. Os resultados mostram que o Docker possui desempenho superior ao do KVM, apresentando tempos de processamento do proxy mais próximos ao de uma solução sem virtualização. Entretanto, quando um maior isolamento é necessário, o KVM é mais adequado. Nessa linha, este trabalho mostra que a para-virtualização do KVM melhora significativamente o desempenho, mas não o suficiente para superar o Docker.
Referências
Babu, A., M, H., Martin, J. P., Cherian, S. e Sastri, Y. (2014). System performance evaluation of para virtualization, container virtualization and full virtualization using Xen, OpenVZ and XenServer. Em International Conference on Advances in Computing and Communications, p. 247–250.
Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt, I. e Wareld, A. (2003). Xen and the art of virtualization. Em ACM Symposium on Operating Systems Principles (SOSP), p. 164–177.
Bondan, L., dos Santos, C. R. P. e Granville, L. Z. (2016). Comparing virtualization solutions for NFV deployment: A network management perspective. Em IEEE Symposium on Computers and Communication (ISCC), p. 669–674.
Bui, T. (2015). Analysis of Docker security. Relatório técnico. Analysis http://arxiv.org/abs/1501.02967.
Citrix, X. (2017). Citrix XenServer. https://www.citrix.com.br/products/xenserver. Acessado em dezembro de 2017.
Combe, T., Martin, A. e Pietro, R. D. (2016). To Docker or not to Docker: A security perspective. IEEE Cloud Computing, 3(5):54–62.
Couto, R. S., Campista, M. E. M. e Costa, L. H. M. K. (2014). Network resource control for Xen-based virtualized software routers. Computer Networks, 64:71–88.
Docker (2017a). CoreOS: Open source projects for Linux containers. https://coreos.com. Acessado em dezembro de 2017.
Docker (2017b). Docker build, ship and run any app, anywhere. https://www.docker.com. Acessado em dezembro de 2017.
Dua, R., Raja, A. R. e Kakadia, D. (2014). Virtualization vs containerization to support PaaS. Em IEEE International Conference on Cloud Engineering, p. 610–614.
Eiras, R. S. V., Couto, R. S. e Rubinstein, M. G. (2016). Performance evaluation of a virtualized HTTP proxy using KVM and Docker. Em International Conference on the Network of the Future (NOF), p. 1–5.
ETSI, N. (2013). Network functions virtualisation (NFV) architectural framework. ETSI GS NFV, 2(2):V1.
Felter, W., Ferreira, A., Rajamony, R. e Rubio, J. (2015). An updated performance comparison of virtual machines and Linux containers. Relatório técnico. IBM Research Report RC25482 (AUS1407-001).
Fernandes, N. C., Moreira, M. D. D., Moraes, I. M., Ferraz, L. H. G., Couto, R. S., Carvalho, H. E. T., Campista, M. E. M., Costa, L. H. M. K. e Duarte, O. C. M. B. (2011). Virtual networks: Isolation, performance, and trends. Annals of Telecommunications, 66(5-6):339–355.
Heideker, A. e Kamienski, C. (2016). Gerenciamento exível de infraestrutura de acesso público à Internet com NFV. Em Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos, p. 937–950.
Kim, H.-C., Lee, D., Chon, K., Jang, B., Kwon, T. e Choi, Y. (2010). Performance impact of large le transfer on web proxy caching: A case study in a high bandwidth campus network environment. Journal of Communications and Networks, 52:52–66.
Kivity, A., Laor, D., Costa, G., Enberg, P., Har’El, N., Marti, D. e Zolotarov, V. (2014). OSv — optimizing the operating system for virtual machines. Em USENIX Annual Technical Conference (USENIX ATC 14), p. 61–72.
Kubernetes (2017). Kubernetes. https://kubernetes.io. Acessado em dezembro de 2017.
KVM (2017). Kernel-based virtual machine. https://openvirtualizationalliance.org/whatkvm/overview. Acessado em dezembro de 2017.
Martins, J., Ahmed, M., Raiciu, C., Olteanu, V., e Honda, M. (2014). ClickOS and the art of network function virtualization. Em USENIX Symposium on Networked Systems Design and Implementation (NSDI), p. 459–473.
Microsoft (2017).
https://msdn.microsoft.com/ptMicrosoftHyper-V.br/library/hh831531(v=ws.11).aspx. Acessado em dezembro de 2017.
Mijumbi, R., Serrat, J., Gorricho, J. L., Bouten, N., Turck, F. D. e Boutaba, R. (2016). Network function virtualization: State-of-the-art and research challenges. 18(1):236–262.
Nakajima, Y., Masutani, H. e Takahashi, H. (2015). High-performance vNIC framework for hypervisor-based NFV with userspace vswitch. Em Fourth European Workshop on Software Dened Networks, p. 43–48.
Oracle (2017). Virtualbox. https://www.virtualbox.org. Acessado em dezembro de 2017.
Rasmusson, L. e Corcoran, D. (2014). Performance overhead of KVM on linux 3.9 on ARM cortex-a15. ACM SIGBED Review, 11(2):32–38.
Squid (2017). Squid 3 proxy. http://www.squid-cache.org/Intro. Acessado em dezembro de 2017.
Stress (2014). Stress for linux. https://people.seas.harvard.edu/apw/stress. Acessado em dezembro de 2017.
Technology, A. S. . (2013). Caching improves user experience in 4G LTE networks. http://www.antennasonline.com/main/blogs/caching-improves-userexperience-in-4g-lte-networks - Acessado em dezembro de 2017.
Tsetse, A. K., Wijesinha, A. L., Karne, R. K. e Loukili, A. (2012). A 6to4 gateway with co-located NAT. Em IEEE International Conference on Electro/Information Technology (EIT), p. 1–6.
VirtIO (2017). Virtio - paravirtualized drivers for KVM/linux. http://www.linuxkvm.org/page/Virtio - Acessado em dezembro de 2017.
VMware (2012). Vmware - official site. https://www.vmware.com/ - Acessado em dezembro de 2017.
Yang, J. e Lan, Y. (2015). A performance evaluation model for virtual servers in KVM-based virtualized system. Em IEEE International Conference on Smart City/SocialCom/SustainCom, p. 66–71.