ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS ANÁLISE DE DESEMPENHO DE MÁQUINAS...
Transcript of ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS ANÁLISE DE DESEMPENHO DE MÁQUINAS...
ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS
ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.
BELÉM/PA 2011
ERELYN LUIS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS
ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.
Trabalho de Conclusão de Curso apresentado ao Centro de Ciências Exatas e Tecnológicas da UNAMA - Universidade da Amazônia, como exigência parcial para obtenção do título de Bacharel em Ciência da Computação. Elaborado sobre orientação do Prof. MSc. Ananias Pereira Neto.
BELÉM/PA 2011
ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS
ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.
Trabalho de Conclusão de Curso apresentado para obtenção do
grau de Bacharelado em Ciência da Computação.
Data da Defesa: ____/____/____ Conceito: __________________
Banca Examinadora:
_________________________________________________ Orientador: Prof. MSc. Ananias Pereira Neto
_________________________________________________
Membro: Prof. MSc. Max Trindade
_________________________________________________ Membro: Prof. MSc. Ricardo Ferreira
BELÉM/PA 2011
AGRADECIMENTOS
Agradecemos, em primeiro lugar, a Deus, por estar presente nos momentos
alegres e difíceis de nossa caminhada, dando-nos forças e sabedoria para
superarmos os embaraços e alcançarmos o nosso objetivo: concluirmos a
nossa graduação.
Eu (Erelyn Luis) agradeço ao Prof. Dr. Mauro Margalho Coutinho e ao Prof. Dr.
Afonso Jorge Ferreira Cardoso, por disponibilizarem seu tempo para avaliar o
trabalho que agora apresentamos. Agradeço também as minhas tias Alvina e
Ana Lúcia, pelo incentivo e apoio que sempre me deram para cursar e concluir
o curso superior que escolhi. Agradeço ainda à minha mãe pela ajuda que me
prestou na elaboração do TCC. E, finalmente, agradeço a companhia de minha
filha Ana Clara, cuja presença alegra minha vida, especialmente, nos finais de
semana que partilhamos.
Eu (João Paulo) agradeço à minha mãe, Ray Santos, mulher guerreira, grande
educadora que me deu a vida, pelo amor que me dedica, que desde cedo
mostrou o valor da vida e o compromisso de vivê-la de forma intensa, com
dignidade, com vigor e com a sabedoria de um peregrino que sempre está em
busca de novos caminhos. A senhora é e sempre será a base de tudo em
minha vida; e ao meu padrasto Moura, que jamais mediu esforços para que
esta conquista fosse realizada.
Agradecemos ainda aos nossos familiares, que tanto nos incentivaram e nos
deram o suporte necessário para seguirmos na vida acadêmica.
Ao nosso orientador, Prof. Msc. Ananias Pereira Neto, por sua compreensão e
sua enorme paciência em poder nos ajudar em nossas dúvidas ao longo do
curso.
Aos professores do curso de Bacharelado da Universidade da Amazônia
(UNAMA), os quais, durante o período do curso da graduação, oportunizaram o
aprimoramento de conhecimentos e contribuíram positivamente para
desenvolvermos habilidades no curso de Ciências da Computação.
A todos o nosso muito obrigado!
O tempo não perdoa os erros que cometemos... Ele é implacável:
passado é passado, e não há nada que possamos fazer diante desse fato.
Mas, a cada dia, temos a oportunidade de mudar e recomeçar devido a
um presente divino: o hoje!
Niara De Sousa Almeida
RESUMO
Este trabalho apresenta uma análise comparativa entre dois sistemas
operacionais anfitriões: o Windows Server 2008 x64 e o Linux CentOS x64.
Nessa comparação foram utilizadas duas ferramentas virtualizadoras: a
VirtualBox4.1.6 e a VMWare Workstattion8. Observamos as características
gerais, o desempenho e os recursos de cada um desses sistemas anfitriões
para que pudéssemos encontrar a melhor aplicação para cada um deles, bem
como verificar a eficiência de cada sistema, individualmente, desenvolvendo os
gráficos de desempenho de cada máquina virtual e sua plataforma. O objetivo
do estudo foi identificar o sistema anfitrião de melhor desempenho, seja com o
virtualizador VirtualBox4.1.6, seja com o virtualizador VMWare Workstattion8.
Foram abordados temas como a virtualização, as vantagens e os tipos de
virtualização, a paravirtualização e o conceito de benchmark. Concluímos,
neste estudo, que o melhor sistema operacional anfitrião encontrado, mediante
os testes realizados, foi o sistema Linux.
PALAVRAS-CHAVE: Sistemas operacionais anfitriões; Virtualização;
Benchmark; Compactação.
ABSTRACT
Our objective with this research, a comparative analysis between two host
operating systems: Windows Server 2008 x64 and x64 CentOS Linux. In this
comparison, we used two virtualization tools: VMWare and the VirtualBox4.1.6
Workstattion8. In this context, we note the general characteristics, performance and
resources of each of these host systems so that we could find the best application for
each, as well as verify the efficiency of each system individually, developing the
graphics performance of each machine and its virtual platform to identify the best
performing host system, either with the virtualizer VirtualBox4.1.6, either with the
VMware virtualized Workstattion8. Topics covered in virtualization, the benefits and
types of virtualization, paravirtualization and the concept of benchmarks. In
conclusion, this study, the best host operating system found by the tests performed,
the system was Linux.
KEY-WORDS: Operating Systems hosts. Virtualization. Benchmarks. Compaction.
LISTA DE FIGURAS
Figura 1: Organograma do ambiente de teste............................................................14
Figura 2: Modelo de Virtualização..............................................................................18
Figura 3: Tela da ferramenta VMWare executando o SO Windows...........................24
Figura 4: Tela da ferramenta VirtualBox.....................................................................25
Figura 5: Operação com números inteiros................................................................28
Figura 6: Operação com números fracionários..........................................................29
Figura 7: Operação com números dobrados .............................................................30
Figura 8: Teste de latência de comunicação local......................................................31
Figura 9: Teste de processador..................................................................................34
Figura 10: Teste virtual machine.................................................................................35
Figura 11: Controle de memória.................................................................................36
Figura 12: Stoprege device........................................................................................38
Figura 13: Redes locais..............................................................................................39
Figura 14: Compactação 7z em segundos.................................................................40
Figura 15: Compactação usando p7..........................................................................41
Figura 16: Resultado da Codificação de áudio usando Windows..............................42
Figura 17: Resultado Codificação de áudio usando Linux.........................................43
Figura 18: Codificação de vídeo no Linux..................................................................44
Figura 19: Codificação de vídeo usando Windows....................................................45
LISTA DE TABELAS
Tabela 1: Resultado dos teste com números.............................................................28
Tabela 2: Resultado dos testes com números fracionários........................................29
Tabela 3: Resultado dos testes com números dobrados............................................30
Tabela 4: Resultado do teste de latência de memória................................................32
Tabela 5: Resultado dos testes de processador.........................................................34
Tabela 6: Resultado dos testes de máquina virtual....................................................35
Tabela 7: Resultado dos testes de controle de memória............................................36
Tabela 8: Resultado dos testes de disco....................................................................38
Tabela 9: Resultado do teste de rede local...............................................................
13
SUMÁRIO
1 INTRODUÇÃO........................................................................................................13
1.1 VISÃO GERAL.....................................................................................................13
1.2 OBJETIVO............................................................................................................14
1.3 METODOLOGIA DO ESTUDO............................................................................14
1.3.1 Trabalhos relacionados..................................................................................15
1.3.2 Características do estudo...............................................................................16
1.4 ORGANIZAÇÃO DO TRABALHO........................................................................16
2 O PROCESSO DE VIRTUALIZAÇÃO....................................................................17
2.1 VANTAGENS DO PROCESSO DE VIRTUALIZAÇÃO.........................................29
2.2 TIPOS DE VIRTUALIZAÇÃO................................................................................20
2.2.1 A Emulação de Hardware ...............................................................................21
2.2.2 Virtualização Completa ..................................................................................21
2.2.3 Paravirtualização.............................................................................................22
2.2.4 Virtualização de Instruções (Instruction Set Virtualization)........................23
2.3 FERRAMENTAS DE VIRTUALIZAÇÃO...............................................................23
2.3.1 VMWare Workstation.....................................................................................24
2.3.2 Virtual Box........................................................................................................25
3 EXPERIMENTOS E RESULTADOS.......................................................................26
3.1 DESCRIÇÃO DO AMBIENTE...............................................................................26
3.2 ANÁLISE DE DESEMPENHO..............................................................................26
3.3 SOBRE O LMBENCH...........................................................................................27
3.3.1 Operações com Números Inteiros (Integer)..................................................27
3.3.2 Operações com Números fracionários (Floats)...........................................28
3.3.3 Operações com Números Dobrados (Double)..............................................29
3.3.4 Latência para a Comunicação Local.............................................................31
3.4 SOBRE O SISOFTWARE SANDRA 2012............................................................32
3.4.1 Testes de processamento da CPU.................................................................33
3.4.2 Testes com máquinas virtuais.......................................................................34
3.4.3 Testes com o controlador de memória..........................................................36
3.4.4 Testes de Disco...............................................................................................37
3.4.5 Teste de Rede Local........................................................................................38
14
3.5 COMPACTAÇÃO DE ARQUIVOS........................................................................39
3.6 CODIFICAÇÃO DE ÁUDIO..................................................................................41
3.7 CODIFICAÇÃO DE VÍDEO..................................................................................43
4 CONSIDERAÇÕES FINAIS....................................................................................46
REFERÊNCIAS..........................................................................................................48
APÊNDICES...............................................................................................................50
1 INTRODUÇÃO
1.1 VISÃO GERAL
Este trabalho foi desenvolvido com o propósito de verificar se há diferença
de desempenho na utilização de diferentes tipos de sistema operacionais anfitriões.
Escolheu-se o Windows e o Linux como sistemas anfitriões a serem testados. O
primeiro, por ser o mais utilizado; e o segundo; por ser um software livre. Outro
motivo importante foi o fato de existirem virtualizadores compatíveis com ambos os
sistemas (multiplataforma), a saber o VirtualBox4.1.6 e VmWare Worksattion8.
Existem tipos e técnicas de virtualização. Os tipos são a virtualização do
hardware, do sistema operacional e das linguagens de programação; as técnicas
são a virtualização total e a paravirtualização. No caso deste estudo, optou-se pela
virtualização total do sistema operacional, tendo em vista os recursos materiais
disponíveis na universidade para desenvolver os testes necessários.
Utilizou-se a técnica denominada benchmark, que, segundo Scalzo et al
(2007), é o ato de executar um programa de computador ou um conjunto de
programas, ou sequências operacionais, a fim de avaliar a performance de um
processador, memória, código de programação etc., quando são realizados uma
série de testes que possibilitam avaliar de forma consistente o desempenho de
determinado sistema operacional. Por meio do benchmark, é possível definir qual
ferramenta se encaixa melhor para cada tipo de situação de trabalho.
As empresas proprietárias do sistema anfitrião executam uma série de
testes-padrão e ensaios nos seus produtos (sistema operacional), mas o método
utilizado para os testes não estão disponíveis ao usuário e só divulgam os resultados
que lhes são favoráveis.
15
Por outro lado, o usuário não detém o conhecimento necessário ou
disponibilidade de tempo para fazer testes comparativos entre sistemas
operacionais. Recorre, via de regra, apenas aos manuais (feitos com base em
princípios científicos) e ao conhecimento empírico que detém quanto ao
funcionamento do sistema (hardware e software), e, especialmente, quanto ao
contexto de aplicação a que se destinam os dados.
Portanto, as análises que aqui serão apresentadas, poderão contribuir com
informações detalhadas sobre o desempenho dos sistemas operacionais Windows e
Linux diante de situações similares às testadas neste trabalho.
1.2 OBJETIVO
Realizar a análise comparativa entre dois sistemas operacionais anfitriões, o
Windows Server 2008 x64 e o Linux CentOS x64, utilizando duas ferramentas
virtualizadoras: a VirtualBox 4.1.6 e a VMWare Workstattion 8.
1.3 METODOLOGIA DO ESTUDO
Após o levantamento bibliográfico, iniciou-se a execução dos testes. Utilizou-
se o hardware com 8GB de memória RAM, sendo que dessa memória, 4GB foram
destinados inteiramente para executar a máquina virtual.
O processador utilizado foi um Intel Core 2 Quad Q9550S, sendo
disponibilizados apenas dois núcleos para as máquinas virtuais. Instalou-se
primeiramente o sistema anfitrião; sobre ele, os virtualizadores; e sobre estes, as
máquinas virtualizadas, com dois processadores, 4 GB de memória e 40 GB de HD,
conforme Figura 1.
16
W
L
W
L
W
L
W
L
│ │ │ │ │ │ │ │
VMWare VirtualBox
VMWare VirtualBox
│ │
Windows (sistema anfitrião) Linux (sistema anfitrião)
│ │
HARDWARE
Figura 1: Organograma do ambiente de teste
Os sistemas anfitriões usados foram o Windows Server 2008 x64 e o Linux
CentOS x64; os vitualizadores, o VirtualBox 4.1.6 e o VMWare Workstattion 8; e as
máquinas virtualizadas, o Windows Server 2008 x64 e o Linux Debian 6.0.3 x64.
Optou-se por essa versão do Linux por proporcionar maior facilidade na aplicação
dos testes. Para os testes não terem problemas cada máquina virtual foi executada
individualmente. Os detalhes de cada teste estão comentados no Capítulo 3.
1.3.1 Trabalhos relacionados
Na revisão bibliográfica, encontrou-se poucos trabalhos acadêmicos
disponíveis sobre testes em máquinas virtuais. Assim, nossa referência foi centrada
em dois artigos, por estes se aproximarem do estudo que se queria empreender, os
quais foram: “Virtualização como alternativa para ambiente de servidores”, de Silva
et al (2008) e “Comparativo entre ferramentas de virtualização”, de Baruchi (2008).
No primeiro estudo, de Silva et al (2008), foram realizados testes de
desempenho para comparar três virtualizadores: o KVM, Xen 3.0.3 e VMware Server
2. Os virtualizadores foram executados em um sistema anfitrião Linux CentOS 5.6
com kernel 2.6.18, com máquinas virtualizadas Linux e testes em Linux, em todos os
casos. Foram executados testes de beachmark com LMBench, codificação de vídeo
no Linux e testes no servidor Web Apache; o teste transferência de arquivos foi
realizado tanto com cópia de um arquivo de 4 GB para o Windows quanto com o
Linux. Em todas as máquinas virtuais foi alocado somente um processador para
realizar os referidos testes.
A análise de Baruchi (2008) foi efetuada através de testes de desempenho
que compararam três virtualizadores: o VMware Server 1.7, VirtualBox 2.0 e o
17
VirtualServer 2005. Baruchi (2008) utilizou o Windows 2003 Server R2 SP2 como
sistema anfitrião e virtualizou o sistema operacional de Desktop Windows XP
Profissional SP2. Os testes foram realizados sobre o sistema operacional Windows
XP, além dos testes de comparação com o sistema desktop sem estar virtualizado.
Entende-se que os testes aplicados por Baruchi (2008) podem ter alguns
problemas de confiabilidade, devido à utilização de um sistema operacional desktop
que tem algumas limitações quanto a conexões simultâneas de rede e um pior
gerenciamento entre os processos do sistema operacional. Os testes aplicados em
ambas as situações foram de Benchmark com PCMark 2005, teste com banco de
dados e teste de transferência de arquivos por FTP.
1.3.2 Características do estudo
Neste trabalho, utilizou-se dois virtualizadores multiplataforma: o VirtualBox
4.1.6 e o VMware Worstation 8.0, em suas versões atualizadas até 11 de novembro
de 2011. As análises aqui realizadas avançam em quatro aspectos com relação aos
trabalhos anteriores:
1. Utilizou-se mais de um sistema anfitrião para realizar os testes –
Windows e Linux –, sendo este o principal escopo do estudo;
2. Virtualizou-se dois sistemas também para realização de testes, tanto
no Windows como no Linux;
3. foram usados somente sistemas 64 bits por tornar possível alocar
4GB de memória entre as maquinas, que também só utilizavam SO 64
bits;
4. alocou-se dois processadores para máquinas virtualizadas para
realizar os testes com multithreading.
1.4 ORGANIZAÇÃO DO TRABALHO
O presente trabalho foi estruturado em quatro capítulos. No primeiro
capítulo, apresenta-se as informações gerais a respeito do estudo. No segundo
capítulo, comenta-se acerca dos principais conceitos e da situação atual do
processo de virtualização, bem como suas vantagens e os tipos de virtualização.
No terceiro capítulo, detalha-se a metodologia empregada para a aplicação
dos testes escolhidos, bem como as características gerais, o desempenho e os
18
recursos de cada um dos sistemas operacionais anfitriões analisados. Também,
nesse capítulo, discute-se os resultados obtidos, ilustrados com os gráficos de
desempenho. Por fim, apresenta-se as conclusões a que se chegou após a
realização dos testes e a análise dos resultados.
Esclarece-se que este estudo foi desenvolvido de forma independente, visto
que não há vínculo de qualquer espécie entre o pesquisador-analista e as empresas
proprietárias. Dessa forma, a sociedade tem ao seu alcance um resultado sem
induções comerciais, que expõe as características reais de cada máquina estudada,
minimizando as falhas na hora da escolha.
19
2 O PROCESSO DE VIRTUALIZAÇÃO
Para se compreender o processo de virtualização, faz-se necessário
apresentar o que são sistemas operacionais. Na perspectiva do usuário ou
programador (visão top-down), é uma abstração do hardware, que faz o papel de
intermediário entre o aplicativo (programa) e os componentes físicos do computador
(hardware). Na visão bottom-up, de baixo para cima, é um gerenciador de recursos,
que controla quais e quando aplicações (processos) podem ser executadas e que
recursos (memória, disco, periféricos) podem ser utilizados. Portanto, Sistema
Operacional (SO ou OS, do inglês Operating System) são programas complexos,
cuja atribuição é responder por todo o funcionamento de uma máquina a partir dos
comandos impostos pelo usuário.
Um sistema operacional possui as seguintes funções: gerenciamento de
processos; gerenciamento de memória; sistema de arquivos; entrada e saída de
dados Coelho (2009). Dentre os sistemas operacionais existentes, podemos citar
Windows, Linux e Mac OS X, mais conhecidos por serem utilizados em
computadores pessoais.
Esses sistemas operacionais podem ser virtualizados, isto é, passar por um
processo de virtualização. De acordo com Coelho (2009), “virtualização” é o
processo de executar diferentes sistemas operacionais dentro de uma mesma
máquina, aproveitando ao máximo a capacidade do hardware, através da emulação
de ambientes isolados, isto é, fornecendo ambientes de execução independentes a
diferentes sistemas em um mesmo equipamento físico, concomitantemente.
Com essa técnica, aumenta-se a quantidade de softwares que podem ser
utilizados sobre um mesmo hardware. Os ambientes assim criados são chamados
de máquinas virtuais. Portanto, máquinas virtuais são computadores fictícios
elaborados por programas de simulação, com memória, processador e outros
recursos virtualizados.
A sua existência de máquinas virtuais não é recente. Segundo Jones (2006),
foi nos anos 60, do século XX, que se fez referência à realização de um processo
virtualização, utilizando-se o equipamento IBM 7044 Compatible Time-Share System
(CTSS)1. A figura 2 mostra uma melhor compreensão:
1 Em uma tradução livre, Sistema Compatível com Compartilhamento de Tempo. O equipamento, denominado
"Projeto Atlas", resultou de um estudo conjunto entre o MIT (Massachusetts Institute of Technology – Instituto
20
Fonte: ITconsultoria.
Figura 2: Modelo de Virtualização.
À época, o chamado “Supervisor”, sistema operacional do mainframe IBM
704 M44/44X, executava duas máquinas virtuais, uma para o sistema; e outra para a
execução de programas. Essa tecnologia serviu de base para outros computadores,
como o mainframe IBM System/360 modelo 67, lançado em 1966, no qual o
hardware do equipamento era inteiramente acessado por meio de uma interface
chamada Virtual Machine Monitor (VMM), o qual funcionava diretamente no
hardware básico do equipamento, permitindo a execução de máquinas virtuais.
Assim, cada máquina virtual passava a ser uma nova instância do mesmo
sistema operacional-base que estivesse em execução. Por esse fato, o antigo termo
"Supervisor" foi substituído por Hypervisor, por ter se tornado “um software que
provê ambiente de virtualização para o sistema operacional rodando acima dele”
(SILVA et al, 2008).
A partir da década de 1970, a IBM lançou uma série de mainframes. Dentre
elas, criou o System/370 e, logo após, o sistema operacional VM/370, o qual
permitia a criação de múltiplas máquinas virtuais para os mainframes dessa série. O
VM/370, hoje, é conhecido como IBM z/VM e mantém compatibilidade total com os
aplicativos desenvolvidos ainda para o System/370, bem como com sistemas
operacionais para os mainframes da série System/Z.
de Tecnologia do Massachusetts), a Ferranti Ltd. e a University of Manchester (universidade de Manchester),
no qual foi utilizado um mainframe com implementação de chamadas supervisoras (SILVA et all, 2008).
21
Nas décadas de 80/90, no entanto, a virtualização perdeu forças devido à
criação de novas aplicações cliente-servidor, provocando, dessa forma, o declínio da
plataforma mainframe. Acredita-se que o alto custo inicial de um mainframe
incentivou as empresas a investirem em servidores de plataforma2 x86. Por esse
motivo, a plataforma X86 consolidou-se como recurso interessante para o uso da
virtualização.
De acordo com a empresa VMware Inc apud, Baruchi (2008), pode-se citar
três situações que contribuíram para a consolidação da plataforma X86:
1. a larga ascensão da plataforma Linux nos servidores;
2. a adoção do sistema operacional Windows em desktops;
3. A disseminação do sistema operacional Windows nos anos 90.
Os mainframes tinham grande capacidade de processamento, ao contrário
da fase inicial da plataforma x86, haja vista que esta não era projetada visando a
virtualização, como os mainframes sempre o foram, já que visavam a virtualização.
Portanto, em cada implementação de algum servidor x86 típico, o teto de uso das
CPUs acabava sempre entre 10 a 15% da capacidade total desse servidor. Isso
acontecia porque, para cada servidor x86, geralmente se utilizava uma única
determinada aplicação, cujo objetivo era o de garantir boa margem de risco contra
problemas que pudessem comprometer a produção VMware Inc apud, Baruchi
(2008).
Todavia, quando, em 1999, a VMware Inc. focalizou a virtualização para o
uso da plataforma x86, potencializou a eficiência dos equipamentos dessa
plataforma. Esse procedimento possibilitou o aproveitamento de servidores x86, de
propósito geral, para prover uma estrutura compartilhada, oferecendo ainda
isolamento completo, mobilidade e liberdade de escolha para sistemas operacionais
em ambientes de servidores. Baruchi ( 2008).
2.1 VANTAGENS DO PROCESSO DE VIRTUALIZAÇÃO
A grande vantagem oferecida pela virtualização se dá por esta suportar
várias aplicações em um só sistema físico, quebrando o paradigma vigente até a
2 Na informática, o termo “plataforma” designa a tecnologia utilizada na Tecnologia da Informação, que facilita
a integração dos diversos elementos dessa estrutura. Pode ser compreendida como um processo operacional.
22
década de 70 de “uma aplicação, um servidor”. Ao virtualizar determinado número
de sistemas subutilizados em um único servidor físico, a empresa economiza espaço
em estrutura física, espaço em disco, refrigeração, energia e tem a possibilidade de
centralizar o gerenciamento.
Na “Consolidação de Servidores”, é necessário determinar quais os
servidores podem ou não ser virtualizados, fazendo uma avaliação dos recursos
existentes. Para tanto, pode-se utilizar ferramentas como MRTG ou Cacti (ambos
utilizam SNMP4) para monitorar a performance e o uso de recursos em cada
servidor. Uma vez virtualizado, é preciso fazer um acompanhamento do
desempenho para verificar se o novo servidor físico ficou sobrecarregado. Caso isso
ocorra, é possível migrar determinado servidor virtual para outro servidor físico com
o mesmo em operação, sem necessidade de reboot. Dessa forma, faz-se o
balanceamento de carga entre vários servidores físicos hospedeiros sem afetar o
funcionamento das máquinas virtuais.
A virtualização também é importante para se analisar a redundância em data
centers, procedimento indispensável em ambientes 24 x 7 (24 horas por dia, sete
dias da semana). Com a migração em tempo real, uma vez identificada a
possibilidade de falha de determinada máquina física hospedeira (quebra de
espelhamento, fonte queimando, memória despejando etc), basta migrarmos as
máquinas virtuais para outros servidores físicos.
Porém, se acontecer alguma falha não esperada em algum servidor
hospedeiro, todas as máquinas virtuais daquele equipamento podem ser afetadas.
Por exemplo, caso todas as fontes de um servidor queimem ao mesmo tempo, todas
as máquinas virtuais dele desligarão. Ou, caso aconteça alguma falha nos discos do
servidor ou na storage de armazenamento, todas as máquinas virtuais poderão ser
corrompidas. Daí a importância do monitoramento do sistema e do tipo de
virtualização a ser aplicada.
2.3 TIPOS DE VIRTUALIZAÇÃO
Existem vários usos e maneiras de proceder a virtualização. Escolheu-se
quatro delas para se comentar, por serem as mais utilizadas, a saber:
Emulação de hardware;
Virtualização Completa;
23
Paravirtualização;
Instruction Set Virtualization (Virtualização de Instruções).
2.3.1 A Emulação de Hardware
Segundo Jones (2006), a emulação de hardware é atualmente a forma mais
complexa de virtualização. Devido a sua complexidade, gera grandes overheads,
prejudicando o desempenho do sistema operacional guest3. Nesse método, todo o
hardware de uma máquina virtual é criado via software no sistema hospedeiro para
emular o hardware proposto. Ou seja, até o processador da máquina virtual precisa
ser criado via software, o que é feito geralmente em assembly.
Para emulações de alta-fidelidade, incluindo transições de informação entre
registradores para memória cache e criação de pipelines na CPU, a performance
pode ser, facilmente, mil vezes menor (JONES, 2006). A emulação de hardware,
entretanto, também tem vantagens, por exemplo, com ela é possível rodarmos um
sistema operacional guest sem qualquer modificação ou adaptação.
2.2.2 Virtualização Completa
A virtualização completa, também conhecida como "virtualização nativa", é
outro método utilizado para a virtualização. Esse modelo usa uma máquina virtual
através da mediação entre o sistema operacional hospedeiro (host) e o guest4. A
palavra "mediação" é utilizada, pois o VMM faz a troca entre o sistema operacional
virtualizado e o hardware do equipamento. A virtualização completa é mais rápida
que a emulação de hardware, mas a performance também é menor do que a do
mesmo sistema operacional rodando nativamente. Nesse aspecto, a grande
vantagem da virtualização completa é que o sistema operacional pode rodar sem
modificações e a desvantagem é que a máquina guest não pode rodar em host de
arquitetura diferente.
3 Tipo de máquina virtual em que o monitor é implementado entre o hardware e os sistemas convidados (guest
system). 4 Tipo de máquina virtual em que o monitor é implementado como um processo de um sistema operacional real,
denominado sistema anfitrião (host system)
24
Um grande obstáculo para a virtualização completa foi o fato de que, em
dezessete instruções específicas dos processadores da plataforma x86, geravam
erros quando essa camada de interpretação era criada, o que fazia o sistema
operacional guest gerar erros críticos durante sua execução Baruchi (2008). Esses
erros variavam desde informações no sistema operacional, até a finalização
inesperada da aplicação. Assim, essas dezessete instruções foram apontadas como
um importante marco para a criação do primeiro ambiente de virtualização completa
da plataforma x86, o VMware Workstation, cuja primeira edição ocorreu em 1999.
2.2.3 Paravirtualização
A paravirtualização é uma técnica que tem poucas semelhanças com a
virtualização completa. Esse método usa o hypervisor para acesso compartilhado ao
hardware do equipamento, e também integra códigos de virtualização dentro do
sistema operacional nativo, agregando, nele, as funções de gerenciamento do
hypervisor.
Baruchi (2008) explica que por meio da paravirtualização, o hypervisor é
criado como uma camada abaixo do sistema operacional, o qual por sua vez,
multiplexa o acesso dos guests ao hardware do equipamento. Assim, o próprio
sistema operacional nativo (e, nesse caso, de gerenciamento) é transformado em
máquina virtual5.
Dessa maneira, uma vez que os sistemas operacionais sejam adaptados, a
interação entre as máquinas virtuais e a máquina física é otimizada, o que aumenta
o desempenho. Porém, a grande desvantagem desse modelo continua sendo a
dependência da alteração do sistema operacional de gerenciamento e dos guests,
para que possam interagir com o hypervisor ao invés do hardware físico.
5 Segundo SIQUEIRA (apud BARUCHI, 2008), este modelo como hypervisor obtém preferência para os
ambientes virtualizados, pois, os hóspedes sabem perfeitamente que rodam em um ambiente virtual. Para isso, os
guests precisam ser corrigidos, o que só é possível conseguir em sistemas de código aberto
25
2.2.4 Virtualização de Instruções (Instruction Set Virtualization)
Outro aspecto mais recente da virtualização é chamado Instruction Set
Virtualization (Virtualização de Instruções). Nesse modelo, um conjunto de
instruções virtuais é traduzido para uma instrução física destinada à camada de
hardware do equipamento. Assim, com o código original sendo executado dentro de
uma máquina virtual, a tradução ocorre do primeiro (set de instruções) para um
segundo seguimento de código, efetuando a mediação entre a aplicação e o sistema
operacional,um exemplo recente desse modelo é utilizado no processador Crusoe,
da Transmeta, (empresa que criou esse processador).
A arquitetura desse processador implementa tradução binária com o nome
Code Morphing. O mesmo processo também é utilizado para a execução de binários
de diferentes arquiteturas em um sistema operacional de outra plataforma, como, por
exemplo, para rodar binários de um sistema Linux plataforma PowerPC, em um
Linux plataforma x86, com o software “nspluginwrapper”.
2.3 FERRAMENTAS DE VIRTUALIZAÇÃO
As ferramentas de virtualização, conhecidas como Máquinas Virtuais (Virtual
Machine - VM), são softwares que representam as funcionalidades de um hardware
(LAURENO et al., 2006). Os recursos dessas VMs, referentes à memória,
processador etc., são virtualizados quando em execução em um computador. Dessa
forma, os recursos do computador ficam divididos em vários ambientes de execução.
As Máquinas Virtuais podem executar softwares tanto como sendo
servidores como clientes. Entretanto, o sistema de virtualização não depende
apenas do software, é necessário que o hardware seja capaz de suportar o processo
de virtualização. Esse processo é uma tecnologia que cria uma camada de software
que faz uma comunicação direta com o hardware, fazendo com que haja a
possibilidade de que mais de um sistema operacional seja executado em um mesmo
computador.
Atualmente, existem várias ferramentas que permitem o processo de
virtualização. A seguir, apresenta-se duas ferramentas de virtualização bastante
utilizadas nos dias de hoje.
26
2.3.2 VMWare Workstation
VMware Workstation é uma máquina virtual da VMware feita para desktops
que permite a utilização de um sistema operacional dentro de outro. É executado
como um programa dentro de um sistema operacional hospedeiro, o qual é
responsável pela abstração dos dispositivos disponibilizados para o sistema
operacional que será executado dentro da máquina virtual.
Essa Virtual Machine é como um aplicativo visto pelo sistema anfitrião, ou
seja, cria um hypervisor que tem a capacidade de traduzir o sistema guest para o
host. Essa ferramenta é utilizada em ambientes de desenvolvimento, no qual se
necessita testar uma aplicação em várias plataformas; em testes de sistemas
operacionais, por exemplo, podemos usar para executar o Windows dentro do Linux,
ou vice-versa, um de seus usos mais comuns; dentre outras aplicações. A Figura 3
apresenta a tela da ferramenta que mostra o sistema operacional Windows sendo
executado no sistema hospedeiro Linux.
Figura 3: Tela da ferramenta VMWare executando o SO Windows.
27
2.3.2 Virtual Box
O VirtualBox é um software da Oracle e possui versões tanto para Windows
quanto para Linux, MacOS X e outros. Assim como o VMWare, o VirtualBox é uma
máquina virtual bastante utilizada, cujo objetivo é virtualizar sistemas para que se
possa testar programas sem que a máquina física seja afetada.
Uma das vantagens do VirtualBox é o fato de ele ter interfaces bem
definidas, o que torna mais fácil o controle de várias interfaces de uma só vez, além
de ter uma série de recursos extras disponíveis.
A Figura 4 apresenta a tela da utilização da ferramenta, pronta para fazer a
instalação do sistema operacional visitante.
Figura 4: Tela da ferramenta VirtualBox.
.
28
3 EXPERIMENTOS E RESULTADOS
3.1 DESCRIÇÃO DO AMBIENTE
Para executar a comparação dos sistemas operacionais anfitriões, foi
instalado na máquina física o sistema operacional CentOS 6 Linux 64 bits, com
kernel 2.6.32, Windows 2008 SP2 Standard X64, e 8 GB de memória RAM, sendo
que dessa memória, 4 GB foram destinados inteiramente para a máquina virtual em
execução. Para o teste não ter problemas de divergências com a utilização de várias
máquinas virtuais diferentes, cada máquina virtual foi executada individualmente.
O processador utilizado para essa execução foi um Intel Core 2 Quad
Q9550S, sendo disponibilizados apenas dois núcleos para as máquinas virtuais.
Foram utilizados dois HDs de 640 GB, um para cada sistema operacional,
destinando 40 GB para cada máquina virtual, num total de oito máquinas, sendo
quatro com Linux Debian 6.0.3 e quatro com Windows 2008 SP2 Standard X64.
As máquinas virtuais foram configuradas em um ambiente de produção
padronizado em que as tarefas designadas foram iguais para cada servidor
virtualizado, simulando uma situação real. Essas tarefas tiveram a finalidade de
testar o desempenho de cada máquina virtual com softwares para benchmark,
codificação de vídeo, compactação de arquivos e codificação de áudio. Ressalta-se
que todos os sistemas operacionais tiveram suas atualizações (update) processadas
até dia 10 de novembro de 2011, quando os testes começaram a ser efetuados.
3.2 ANÁLISE DE DESEMPENHO
Cada máquina virtualizada foi submetida a testes de processamento, de I/O
e de conectividade, a fim de se analisar a performance de cada uma como um todo.
As tarefas submetidas foram:
Compactação de arquivo no formato 7z
Codificação de vídeo com o codec XVid;
Análise de performance geral com o software LMBench;
Análise de performance geral com software SiSoftware Sandra.
Os testes de performance individuais – a codificação de vídeo, codificação
do áudio, compressão de dados, análise de desempenho com o LMBench e
29
SiSoftware Sandra – foram realizados com o sistema operacional host em IDLE19,
evitando, assim, a influência nos testes de cada uma delas.
3.3 SOBRE O LMBENCH
A execução do LMBench versão 3 Alpha 9, nas máquinas virtuais, testou os
seguintes itens em cada uma delas:
Operações com números do tipo integer - inteiro;
Operações com números do tipo float – ponto flutuante;
Operações com números do tipo double – números duplos;
Latência de comunicação local;
Não é objetivo desse documento o detalhamento completo de cada um dos
subtestes realizados, visto que pode ser obtido em uma máquina com o sistema
operacional Linux que possua o LMBench instalado, através do comando man
lmbench.
O LMBench foi executado em cada máquina virtual até a obtenção do
resultado. Os resultado escritos (.txt) devolvidos pelo LMBench, em cada host,
constam como apêndice neste trabalho. A versão utilizada era a última disponível
nos repositórios da distribuição adotada pelo grupo, e apesar de ser uma versão
Alpha, não foi demonstrado qualquer sinal de instabilidade durante toda a realização
dos testes citados.
3.3.1 Operações com Números Inteiros (Integer)
Esse teste mede a latência das operações com números inteiros, na
máquina virtual, com os operadores aritméticos Integer Addiction (ADD) , Integer
Multiply (MUL), Integer Division (DIV) e Integer Modal (MOD) e o operador lógico
binário Integer Bit (XOR). A Figura 5 representa o comparativo de tempo, em
nanosegundos, para a realização de cada uma das operações descritas utilizando
números inteiros. Quanto menor o resultado obtido, maior a eficiência em cada
máquina virtual.
Como se pode observar na Tabela 1 e na Figura 5, apenas no operador
Integer Multiply (MUL) o Windows (Apêndices A e B) se equipara ao desempenho do
Linux (Apêndices C e D), com o virtualizador VirtualBox. Em todos os demais, os
30
valores dos operadores do Linux foram inferiores aos do Windows, tanto com o
virtualizador VMWare, quanto com o VirtualBox, isto é, o sistema anfitrião Linux
obteve melhor resultado no teste Integer.
0,00
2,00
4,00
6,00
8,00
10,00
12,00
Interger Division Interger Mod Interger Bit Interger Multiply Interger Addiction
Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare
Figura 5: Operação com números inteiros
Windows Linux
VirtualBox VmWare VirtualBox VmWare
Integer Division 8,1700 10,3300 7,4800 7,3500
Integer Mod 9,6700 10,8400 7,8700 7,7400
Integer Bit 0,3900 0,5000 0,3700 0,3600
Integer Multiply 0,1100 0,1500 0,1100 0,1100
Integer Addiction 0,2000 0,2500 0,1800 0,1800 Tabela 1: Resultado dos testes com números
A tabela 1, mostra os valores em nanosegundos das operações com
números inteiros em cada virtualizador.
3.3.2 Operações com Números Floats
Esse teste mede a latência das operações com números fracionados,
representados como pontos flutuantes (Float), na máquina virtual, com os
operadores aritméticos Float Addiction (ADD) , Float Multiply (MUL), Float Division
31
(DIV), além do Float Bogomflops6 do Linux. A Figura 6 representa o comparativo de
tempo, em nanosegundos, para a realização de cada uma das operações descritas
utilizando números fracionados (tipo float). Quanto menor o resultado obtido, maior a
eficiência em cada máquina virtual.
Como mostra a Tabela 2, o sistema anfitrião Windows (Apêndices A e B)
apresentou pior desempenho (valores inferiores) que o Linux (Apêndices C e D),
com os dois virtualizadores.
0,00
1,00
2,00
3,00
4,00
5,00
6,00
7,00
8,00
9,00
Float Division Float BogomFlops Float Multiply Float Addiction
Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare
Figura 6: Operação com números do tipo float
Windows Linux
VirtualBox VmWare VirtualBox VmWare
Float Division 8,0300 7,7800 5,6900 5,5600
Float BogomFlops 4,5700 6,0500 4,4200 4,3200
Float Multiply 2,0300 2,0100 1,4800 1,4300
Float Addiction 1,3100 1,5100 1,1400 1,0800 Tabela 2: Resultado dos testes com números fracionários
A tabela 2 mostra os valores em nanosegundos das operações com números
fracionários de cada máquina virtual.
3.3.3 Operações com Números Double
6 Bogomflot é a aglutinação de Bogo (teste do kernel do Linux), mais m (mega - 10
6), mais flop (pontos
flutuantes por segundo).
32
Esse teste mede a latência das operações com números double,
representados como pontos flutuantes com precisão dupla, na máquina virtual,
recorrendo aos operadores aritméticos Double Addiction (ADD), Double Multiply
(MUL), Double Division (DIV), além do Double BogoMflops do Linux. A Figura 7
representa o comparativo de tempo, em nanosegundos, para a realização de cada
uma das operações descritas utilizando números dobrados (tipo double). Quanto
menor o resultado obtido, maior a eficiência em cada máquina virtual.
Também nesse teste, como demonstrado na Tabela 3, o sistema anfitrião
Windows (Apêndices A e B) foi superado pelo sistema anfitrião Linux (Apêndices C e
D), com os dois virtualizadores.
0,00
2,00
4,00
6,00
8,00
10,00
12,00
14,00
Double Division Double BogomFlops Double Multiply Double Addiction
Windows VirtualBox Windows VmWare Linux VirtualBox Linux Vmware
Figura 7: Operação com números double
Windows Linux
VirtualBox VmWare VirtualBox Vmware
Double Division 12,0900 11,8000 8,6400 8,3800
Double BogomFlops 7,4900 10,1200 7,3700 7,1800
Double Multiply 2,5300 2,5100 1,8300 1,7900
Double Addiction 1,4300 1,5100 1,1000 1,0700 Tabela 3: Resultado dos testes com números double
A tabela 3 mostra os valores em nanosegundos das operações com
números dobrados de cada máquina virtual
33
3.3.4 Latência para a Comunicação Local
Esse teste mede a latência das operações com os protocolos de rede TCP
(Transmission Control Protocol) e UDP (User Datagram Protocol). Foram testados
ambos os protocolos e ainda realizados os testes de chamada remota de
procedimento usando TCP (RPC/TCP) e usando (RPC/UDP). A Figura 8 representa
o comparativo de tempo, em microsegundos, para a realização de cada uma das
operações descritas. Quanto menor o resultado obtido, maior eficiência do sistema
anfitrião.
Foi verificado que com o virtualizador VirtualBox, em todos os testes de
latência, o sistema anfitrião Windows (Apêndice A) obteve melhor resultado, sendo
até 40% melhor que o Linux (Apêndice C). Já com o virtualizador VMware
Workstation, em quase todos os testes, o Linux (Apêndice D) obteve melhor
desempenho; somente o de TCP o sistema Windows (Apêndice B) teve melhor
resultado, como pode ser verificado na Tabela 4.
0,0
50,0
100,0
150,0
200,0
250,0
300,0
RPC/TCP RPC/UDP TCP UDP
Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare
Figura 8: Teste de Latência comunicação local
34
Windows Linux
VirtualBox VmWare VirtualBox VmWare
RPC/TCP 190,2122 56,2373 266,9244 48,1200
RPC/UDP 145,2927 33,8821 224,4395 19,4773
TCP 174,0352 44,3202 252,2860 86,3218
UDP 170,7215 20,2098 194,0536 15,2951 Tabela 4: Resultado do teste de latência de memória
A tabela 4 mostra os valores em micro segundos dos testes de latência
memória em cada virtualizador
3.4 SOBRE O SISOFTWARE SANDRA 2012
Foi utilizado o software SisSoftware Sandra 2012 (System ANalyser,
Diagnostic and Reporting Assistant), o qual é um programa de diagnóstico e
benchmark. A versão utilizada foi a última disponível no site oficial do fabricante.
Nas máquinas virtuais Windows e Linux, com o referido software, foram
realizados os seguintes testes:
Testes de processamento da CPU;
Testes com máquinas virtuais;
Testes com o controlador de memória,
Testes de Disco;
Teste de Rede Local.
Considerou-se não ser conveniente detalhar cada um dos subtestes
realizados face ao grande número deles, o que dificultaria a análise do estudo, por
torná-lo extenso e prolixo. Pelo mesmo motivo, não se incluiu ao trabalho o resultado
escrito (.txt) devolvido pelo SiSoftware Sandra em cada host. Com relação à
descrição dos testes, a mesma pode ser obtida em uma máquina com o sistema
operacional Windows que possua o SiSoftware Sandra instalado, através do help do
software.
O SiSoftware Sandra foi instalado em cada máquina virtual, separadamente,
até a obtenção do resultado. Após cada teste, reinicializou-se o sistema para que a
memória dele (sistema) fosse limpa, evitando, assim, que uma máquina virtual
provocasse algum efeito na outra.
35
3.4.1 Testes de processamento da CPU
Foram realizados testes de processamento da CPU, em que a melhor
eficiência do sistema operacional anfitrião e demonstrada quanto maior o resultado
do teste. Executou-se os testes abaixo:
Dhrystone ALU, que testa a performance aritmética com inteiros;
Whetstone SSE3, que testa a performance aritmética de pontos flutuantes
utilizando instruções SSE3;
Multi-MediaInteger, que testa operações com inteiros, utilizando instruções
multimídia SS3;
Multi-MediaFloat, que testa operações de ponto flutuante float, utilizando
instruções multimídia SS2;
Multi-Media Double, que testa operações de ponto flutuante double,
utilizando instruções multimídia SS2;
Multi-CoreEfficiencyInter-Core Bandwidth, que realiza o teste de eficiência
da utilização de múltiplas CPUs.
Como se pode observar na Tabela 5, com o virtualizador VirtualBox, o
sistema anfitrião Windows superou discretamente – > 0,03 GB/s – o Linux. Da
mesma forma, com o virtualizador VMWare, o desempenho do Windows foi melhor,
revelando 2,69 GB/s contra 1,21 GB/s do Linux. Nos demais testes, o sistema
anfitrião Linux obteve melhor resultado, conforme fica evidente na Figura 9.
36
0,0
5,0
10,0
15,0
20,0
25,0
30,0
Dhrystone ALU (GIPS) Whetstone SSE3
(GFLOPS)
Multi-Media Integer
x8 SSSE3 (GIPS)
Multi-Media Float x8
SSE2 (GFLOPS)
Multi-Media Double
x4 SSE2 (GFLOPS)
Multi-Core Efficiency
Inter-Core Bandwidth
(GB/s)
WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE
Figura 9: Teste de processador
WINDOWS LINUX
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
Dhrystone ALU (GIPS) 23,57 24,75 24,79 25,28
Whetstone SSE3 (GFLOPS) 16,73 18,43 17,62 19,00
Multi-Media Integer x8 SSSE3 (GIPS) 16,41 25,16 17,15 26,00
Multi-Media Float x8 SSE2 (GFLOPS) 15,84 16,83 16,92 17,32
Multi-Media Double x4 SSE2 (GFLOPS) 8,21 8,73 8,78 9,00
Multi-Core Efficiency Inter-Core Bandwidth (GB/s) 1,23 2,69 1,20 1,21
Tabela 5: Resultado dos testes de processador
A tabela 5 mostra os valores com seus respectivos tempos dos testes em
cada máquina virtual.
3.4.2 Testes com máquinas virtuais
Os testes foram realizados utilizando-se máquinas virtuais em JAVA 7update
1 e .NET 4.0, além dos testes aritméticos, com pontos flutuantes e multimídia,
totalizando dez testes. Nesses testes, tem-se a melhor eficiência quanto maior o
resultado.
Aqui também o sistema anfitrião Linux obteve melhor resultado. O Windows
teve melhor desempenho em três testes. Com o virtualizador VMWare, obteve 37,62
GIPS e 7,14 MPix/s nos testes Dhrystone Java e Multi-MediaInteger Java,
respectivamente, contra 36,65 GIPS e 7,00 MPix/s do Linux. Com o virtualizador
37
VirtualBox, apresentou 1,00 GLOPS contra 12,23 GLOPS do Linux no teste
Whetstone Java.
Os resultados estão discriminados na Tabela 6 e melhor visualizados na
Figura 10..
,
0,0
5,0
10,0
15,0
20,0
25,0
30,0
35,0
40,0
Dhrystone .NET
(GIPS)
Whetstone .NET
(GFLOPS)
Multi-Media Integer
.NET (MPix/s)
Multi-Media Float
.NET (MPix/s)
Multi-Media Double
.NET (MPix/s)
Dhrystone Java
(GIPS)
Whetstone Java
(GLOPS)
Multi-Media Integer
Java (MPix/s)
Multi-Media Float
Java (MPix/s)
Multi-Media Double
Java (MPix/s)
WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE
Figura10: Teste virtual machine
Tabela 6: Resultado dos testes de máquina virtual
A tabela 6 mostra o resultado em seus respectivos tempos dos testes de
cada máquina virtual
WINDOWS LINUX
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
Dhrystone .NET (GIPS) 4,18 5,39 5,50 5,50
Whetstone .NET (GFLOPS) 11,10 11,36 11,67 12,00
Multi-Media Integer .NET (MPix/s) 9,36 9,40 9,79 10,00
Multi-Media Float .NET (MPix/s) 2,52 2,60 2,76 2,81
Multi-Media Double .NET (MPix/s) 4,79 4,87 5,10 5,18
Dhrystone Java (GIPS) 34,14 37,62 37,23 36,65
Whetstone Java (GLOPS) 13,00 13,68 12,23 14,00
Multi-Media Integer Java (MPix/s) 6,92 7,14 7,35 7,00
Multi-Media Float Java (MPix/s) 5,18 5,30 6,30 5,46
Multi-Media Double Java (MPix/s) 4,84 5,00 5,00 5,07
38
3.4.3 Testes com o controlador de memória
Esses testes foram feitos com a largura de banda da memória utilizando-se
operações com inteiros e pontos flutuantes. Nos testes Integer Memory Bandwidth e
Float Memory Bandwidth, com números inteiros e números float (pontos flutuantes),
respectivamente, quanto maior o resultado, melhor é a eficiência.
Não houve diferença significativa entre os sistemas anfitriões testados. O
sistema anfitrião Windows mostrou melhor desempenho, em ambos os testes, com o
virtualizador VMWare; ao passo que o sistema anfitrião Linux teve melhor resultado
com o virtualizador VirtualBox, como está descrito na Tabela 7 e representado na
Figura 11.
5,60
5,80
6,00
6,20
6,40
6,60
6,80
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
WINDOWS LINUX
Integer Memory Bandwidth B/F SSE2/128 (GB/s) Float Memory Bandwidth B/F SSE2/128 (GB/s)
Figura 11: Controle de memória
WINDOWS LINUX
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
Integer Memory Bandwidth B/F SSE2/128 (GB/s) 6,53 6,07 6,62 6,00
Float Memory Bandwidth B/F SSE2/128 (GB/s) 6,52 6,08 6,63 6,00
Tabela 7: Resultado dos testes de controle de memória
39
A tabela 7 mostra em seus respectivos tempos os resultado dos testes em
cada máquina virtual.
3.4.4 Testes de Disco
No teste de disco, verificou-se uma leitura sequencial através do disco,
utilizando ou não o sistema de arquivo do sistema em operação, e verificou-se,
também, o teste de acesso randômico no disco. No primeiro caso -leitura sequencial
utilizando ou não o sistema de arquivo – quanto maior o resultado do teste, melhor a
eficiência do sistema anfitrião. Já no teste de acesso randômico do disco, quanto
menor o resultado, melhor a eficiência do sistema anfitrião. O teste de disco foi bem
interessante porque cada sistema anfitrião– Linux e Windows – apresentou uma
particularidade.
No teste de leitura sequencial, tanto com sistema de arquivo ou não,
utilizando o virtualizador VirtualBox, o sistema anfitrião Linux foi um pouco melhor,
com 89,00 MB/s contra 80,63 MB/s do Windows (sem sistema de arquivo) e 146,00
MB/s do Linux, contra 110,56 MB/s do Windows (com sistema de arquivo). No
entanto, no acesso randômico, com o virtualizador VirtualBox, sem sistema de
arquivo, o desempenho do Linux é melhor (7,46ms contra 9,52 msdo Windows);
enquanto o desempenho do Windows foi superior, no caso de ter sistema de
arquivo, com 96µs contra 236 µsdo Linux.
Na utilização do virtualizador VMWare Workstation, sem sistema de arquivo,
o Windows apresentou desempenho melhor, tanto no teste leitura sequencial como
na leitura randômica: 104,65 MB/s contra 43,17 MB/s do Linux (sequencial); e 7,80
ms contra 7,80 ms do Linux. Já no teste com sistema de arquivo, o Linux foi
altamente superior ao Windows, seja no teste sequencial (347% melhor) quanto
randômico (3993% melhor). No primeiro caso (sequencial), o Linux obteve 368,22
MB/s contra 82,24 MB/s do Windows; no segundo (randômico), o Linux apresentou
171 µs contra 7000 µs do Windows.
Os detalhes dos testes podem ser conferidos na Tabela 8 e visualizados na
Figura 12.
40
0,00
50,00
100,00
150,00
200,00
250,00
300,00
350,00
400,00
Physical Disks Read Drive
Score (MB/s)
Physical Disks Read Random
Access Time (ms)
File Systems Drive Score (MB/s) File Systems Random Access
Time (µs)
WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE
Figura 12: Testes de disco
WINDOWS LINUX
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
Physical Disks Read Drive Score (MB/s) 80,63 104,65 89,00 43,17
Physical Disks Read Random Access Time (ms) 9,52 7,80 7,46 7,87
File Systems Drive Score (MB/s) 110,56 82,24 146,00 368,22
File Systems Random Access Time (µs) 96 7000 236 171
Tabela 8: Resultado dos testes de disco
A tabela 8 mostra em seus tempos respectivos, os resultados dos testes em
cada máquina virtual.
3.4.5 Teste de Rede Local
O teste de rede local foi realizado em todas as máquinas virtuais que
utilizavam Windows. Fez-se os testes de largura de banda (Data Bandwidth) e
latência na rede local (Data Latency). Nos testes de largura de banda, quanto maior
o resultado obtido melhor a eficiência do sistema anfitrião; já nos testes de latência,
quanto menor o resultado obtido, melhor a eficiência do sistema anfitrião. Pode-se
conferir na Tabela 9 assim como na Figura 13 que, nos testes realizados com os dois
virtualizadores (VirtualBox e VWWARE), o sistema anfitrião Linux teve melhor
desempenho.
41
Foi interessante verificar o sofrível desempenho do virtualizador VirtualBox
nos testes de rede: no teste Data Bandwidth, teve 8,24 MB/s contra 68,84 MB/s do
VMWare (>60,6 MB/s); e no teste Data Latency 332 µs contra 115 µs,
respectivamente (<217 µs).
2,9259,91
8,24
68,84
588
174
332
115
0,00
100,00
200,00
300,00
400,00
500,00
600,00
700,00
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
WINDOWS LINUXData Bandwidth (MB/s) Data Latency (µs)
Figura 13: Redes locais
WINDOWS LINUX
VIRTUALBOX VMWARE VIRTUALBOX VMWARE
Data Bandwidth (MB/s) 2,92 59,91 8,24 68,84
Data Latency (µs) 588 174 332 115
Tabela 9: Resultado do teste de rede local.
A tabela 9 mostra em seus respectivos tempos os resultados dos testes em
cada máquina virtual.
3.5 COMPACTAÇÃO DE ARQUIVOS
A compactação de arquivos foi realizada com 1.2 GB de dados (Para efetuar
o teste de compactação de arquivos, reuniu-se documentos do Word, Powerpoint e
Pdf, perfazendo 1,2 GB de dados. Esses dados foram usados tanto no sistema
operacional Windows quanto Linux. No Windows foi utilizado o software PeaZip 4.1
X64 no formato 7z, com nível de compressão normal e com método de compressão
LZMA2, que utiliza multithreading. No Linux, foi utilizado o software p7zip 9.04 X64
no formato 7z com a syntax "a -t7z -r -m0=LZMA2 -mx=5". Utilizou-se o comando
42
time do Linux para verificar o tempo do processo. Quanto menor o tempo utilizado,
melhor o desempenho no teste.
0 20 40 60 80 100 120 140 160
Windows VirtualBox 146
Windows VmWare 154
Linux VirtualBox 149
Linux VmWare 145
Tempo em segundos
Figura 14: Compactação de arquivo usando Windows
A Figura 14, acima, mostra os testes de compactação de arquivos tendo o
Windows como máquina virtualizada. Nesse caso, com o VirtualBox, o sistema
anfitrião Windows teve melhor desempenho, com 3 segundos a menos que o
sistema anfitrião Linux. No caso do WMWare, o sistema anfitrião Linux foi 9
segundos mais rápido que o Windows no mesmo teste.
Na Figura 15, a seguir, mostra-se os testes de compactação de arquivos
tendo o Linux como máquina virtualizada. O resultado foi similar ao teste
apresentado no gráfico 10. Com o VirtualBox, o sistema anfitrião Windows foi 2
segundos mais rápido que o Linux, e, com o VMWare, o Linux superou o Windows
em 159 segundos.
Portanto, nota-se que com o VirtualBox houve uma pequena perda nos dois
sistemas chegando no máximo a 3%. Já com VMware Workstation, os testes
apresentaram maior diferença no Windows foram 6% e no Linux a inacreditáveis
53%.
43
0 50 100 150 200 250 300 350
Windows VirtualBox 150
Windows VmWare 304
Linux VirtualBox 152
Linux VmWare 145
Tempo em Segundos
Figura 15: Compactação de arquivo usando Linux
3.6 CODIFICAÇÃO DE ÁUDIO
Foi realizada a codificação de áudio com o CD do João Bosco “Dá licença
meu senhor”, extraído as faixas para WAV com Windows Media Player e feito a
mesclagem das dez primeiras faixas, com o software WAV Joiner, chegando a um
arquivo de 457 MB. O software de codificação de audio LAME foi usado tanto no
Windows, na versão 3.99.1; quanto no Linux, na versão 3.98.4; ambos de 64 bits. A
syntax do comando foi "-b 160 --nores". Ressalta-se que o resultado do teste é
melhor quando menor o tempo em segundos para codificar o mesmo arquivo de
áudio.
Na Figura 16, verificou-se que com o VirtualBox nos testes na plataforma
Windows, o sistema anfitrião Linux compactou os 457 GB em 92 segundos, isto é, o
Linux. foi 8% mais rápido que o sistema anfitrião Windows, o qual fez a mesma
tarefa em 99 segundos. Com o virtualizador VMware Workstation, na plataforma
Windows, o sistema com anfitrião Linux foi significativamente melhor, compactando o
áudio em 91 segundos contra 116 segundos do sistema anfitrião Windows,
superando-o em 22%.
44
0 20 40 60 80 100 120
Windows VirtualBox 99
Windows VmWare 116
Linux VirtualBox 92
Linux VmWare 91
Tempo em Segundos
Figura 16: Codificação de áudio usando Windows
A Figura 17 abaixo, demonstra que com o VirtualBox ,nos testes na
plataforma Linux, o sistema anfitrião Windows compactou os 457 GB em 123
segundos contra os 144 segundos do sistema anfitrião Linux para realizar a mesma
tarefa. Com o virtualizador VMware Workstation, na plataforma Linux, o sistema com
anfitrião Linux foi discretamente melhor, compactando o arquivo de áudio em 118
segundos contra 124 segundos do sistema anfitrião Windows.
45
0 20 40 60 80 100 120 140 160
Windows VirtualBox 123
Windows VmWare 124
Linux VirtualBox 144
Linux VmWare 118
Tempo em Segundos
Figura 17: Codificação de áudio usando Linux
3.7 CODIFICAÇÃO DE VÍDEO
Esse teste foi realizado codificando-se um vídeo com 9 minutos utilizando o
DVD ANIMATRIX com os capítulos “O segundo renascer partes I e II” extraído com o
software DVDDecypter 3.5.4.0 tendo o tamanho de 643 MB que continha somente
vídeo sem áudio, este convertido para o formato XVid. No vídeo, utilizou-se o
software AviDemux 2.5.4, no Linux, e VirtualDub 1.9.11, no Windows. A versão do
codec XVid utilizado no Windows foi a 1.3.2; e 1.2.4 no Linux. Nas duas plataformas,
utilizou-se o contêiner AVI, sendo os programas configurados para operar em
multithreading. Quanto menor o tempo em segundos para codificar um vídeo sem
áudio de mesmo tamanho, melhor é o resultado quanto ao desempenho do sistema
anfitrião.
Na Figura 18, verifica-se que com o VirtualBox, nos testes na plataforma
Linux, o sistema anfitrião Linux compactou os 643 MB de vídeo sem áudio em 496
segundos contra 410 segundos do sistema anfitrião Windows, que teve, portanto, um
desempenho bem superior. Por outro lado, com o virtualizador VMware Workstation
46
na plataforma Linux, o sistema com anfitrião Linux foi melhor, compactando o
mesmo arquivo em 363 segundos contra 389 segundos do sistema anfitrião
Windows.
0 50 100 150 200 250 300 350 400 450 500
Windows VirtualBox 410
Windows VmWare 389
Linux VirtualBox 496
Linux VmWare 363
Tempo em Segundos
Figura 18: Codificação de vídeo no Linux
Nos testes na plataforma Windows, a Figura 19 mostra que o sistema
anfitrião Linux teve um desempenho melhor com os dois virtualizadores. Com o
VirtualBox, o Linux compactou os 643 MB GB em 606 segundos e o sistema anfitrião
Windows fez o mesmo trabalho em 706 segundos. Com o virtualizador VMware
Workstation, na plataforma Windows, o sistema com anfitrião Linux foi ainda
superior, compactando o vídeo em 600 segundos contra 708.
Constatou-se, assim, que, no VirtualBox, com os mesmos testes para
plataforma Linux, que o sistema anfitrião Windows foi melhor em 18% sobre o
sistema Linux; já nos testes na plataforma Windows, o Linux como anfitrião foi
melhor 15%. Quando no VMware Workstation, em ambas as plataformas testadas, o
47
sistema anfitrião Linux foi melhor chegando a superar o sistema anfitrião Windows
em 16% nos testes realizados na plataforma Windows.
0 100 200 300 400 500 600 700 800
Windows VirtualBox 706
Windows VmWare 708
Linux VirtualBox 606
Linux WmWare 600
Tempo em Segunds
Figura 19: Codificação de vídeo usando Windows
48
4 CONSIDERAÇÕES FINAIS
A análise do desempenho dos sistemas anfitriões Windows Server 2008 x64
e Linux CentOS 6 x64, rodando virtualizadores VirtualBox e VMWare Workstation,
com as máquinas virtuais Windows Server 2008 x64 e Linux Debian 6.0.3 x64,
mostrou resultados interessantes.
Nos testes do LMBench, o sistema anfitrião Linux apresentou desempenho
superior na maioria dos casos, com ambos os virtualizadores. Apenas no teste de
latência de comunicação local que o sistema anfitrião Windows apresentou melhor
performance com o VirtualBox.
O mesmo ocorreu quando os testes do software Sandra foram aplicados, em
que o sistema anfitrião Linux mostrou maior eficiência nos testes de processamento
da CPU, com máquinas virtuais, de disco e de Rede Local. O sistema anfitrião
Windows comportou-se discretamente melhor no teste com o controlador de
memória utilizando VMWare; com o VirtualBox o sistema anfitrião Linux teve melhor
desempenho também nesse teste.
No teste de compactação de arquivos, com o VirtualBox, o sistema anfitrião
Windows foi o melhor; já no WVWare, de novo sobressai o sistema anfitrião Linux.
NTanto nos testes de codificação de áudio quanto nos testes de codificação de
vídeo, o sistema anfitrião Linux somente foi superado quando utilizado o virtualizador
VirtualBox com a máquina virtualizada Linux.
De forma geral, então, percebeu-se a expressiva superioridade do
desempenho do sistema anfitrião Linux na quase totalidade dos testes realizados
com os virtualizadores escolhidos.
Para quem utiliza máquinas virtuais no âmbito profissional, testes como os
realizados neste trabalho, ajudam a otimizar o uso dos recursos utilizados e dar
maior celeridade na condução das tarefas.
Entretanto, vale ressaltar que esse tipo de análise requer conhecimento
especializado em manipulação de máquinas virtuais, na operação de sistemas
operacionais de servidor e de programas de benchmark. Além disso, recomenda-se
que seja utilizada uma máquina robusta (como sistemas com quad cores ou
melhores, 8 GB para que possa ser alocado memória suficiente para as maquinas
virtualizadas não havendo lentidão pela falta da mesma e discos de 7200 rpm ou
49
SSD para que o desempenho do disco não atrapalhe o teste) e softwares originais,
o que demandam recursos financeiros substantivos.
Para além dos aspectos materiais, que, embora difíceis, foram superados,
este estudo exigiu dedicação, empenho, e muitas horas ao lado da máquina,
zelando pela boa realização dos testes.
Pelo exposto, reconhece-se, principalmente, a validade do exercício que se
tornou a prova final para ser recebido o título de bacharel em Ciência da
Computação.
Ademais, diante das questões apresentadas e discutidas, espera-se ter
contribuído para uma maior reflexão diante deste tema, que outros trabalhos possam
ser elaborados para um vasto enriquecimento de ideias e objetivos para aqueles que
escolherem seguir neste campo de estudos.
50
REFERÊNCIAS
BARUCHI, João Henrique. Comparativo entre ferramentas de virtualização. Trabalho de Conclusão de Curso. Faculdade de Jaguariúna. 2008.
CHIUEH , N.; BARHAM, P.. Máquinas virtuais – 2006. Disponível em: http://www.guiadohardware.net/dicas/maquinas-virtuais-introducao.html - Acesso em: 10 mai. 2009
COELHO, Fábio Azeredo. CALZAVARA, Gustavo Santos. DI LUCIA, Ricardo. Trabalho de Redes de Computadores I – Professor Otto Duarte. Disponível em <http://www.gta.ufrj.br/grad/09_1/versao-final/virtualizacao/conceitos%20chave.html>. Acesso em 5/11/2011.
JONES, M. T. Virtual Linux. An overview of virtualization methods, architectures, and implementations. IBM: 2006. Disponível em: <http://www-128.ibm.com/developerworks/linux/library/l-linuxvirt/?ca=dgr-lnxw01Virtual-Linux>.Acesso em: 1º. ago. 2009.
LAUREANO, M. Máquinas Virtuais e emuladores. Conceitos,Técnicas e Aplicações. (e-Book). São Paulo, 2006. Novatec Editora.
LOPES, A.; LAZARINO, O. VMWARE Inside in INFO n. 248/2006 (pag. 126-127) Revista INFO, São Paulo – 2006.
MICROSOFT, 2007 Microsoft Virtual Server 2005. Disponível em: http://www.microsoft.com/downloads/ Acessado em: 30/10/2011
NETWORK WORLD 2007 Os oito principais desafios da virtualização em data centers Disponível em: httphttp://pt.scribd.com/doc/68899889/virtualizacao-de-datacenter/ - Acessado em: 23/10/2011
SCALZO, Bert et all. Database Benchmarking Practical methods for Oracle & SQL Server. Kittrell, NC: RAMPANT, 2007.
SILVA, Diogo Ezídio et all. Virtualização como alternativa para ambiente de servidores. Trabalho de Conclusão de Curso. Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial – FATESG. Goiânia, 2008.
TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais Projeto e Implantação 2. Edição (e-Book) Bookman Editora, Rio de Janeiro – 2006.
51
TORRES, G.; LIMA, C. Como Funciona a Tecnologia de Virtualização da Intel - 2007 Disponível em: http://www.clubedohardware.com.br/artigos/1144 - Acessado em: 25/10/2011
53
APÊNDICE A: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO WINDOWS NA MÁQUINA VIRTUALBOX
Process fork+/bin/sh -c: 9352.2366 microseconds
integer bit: 0.39 nanoseconds
integer add: 0.20 nanoseconds
integer mul: 0.11 nanoseconds
integer div: 8.17 nanoseconds
integer mod: 9.67 nanoseconds
int64 bit: 0.37 nanoseconds
uint64 add: 0.20 nanoseconds
int64 mul: 0.26 nanoseconds
int64 div: 17.17 nanoseconds
int64 mod: 15.98 nanoseconds
float add: 1.31 nanoseconds
float mul: 2.03 nanoseconds
float div: 8.03 nanoseconds
double add: 1.43 nanoseconds
double mul: 2.53 nanoseconds
double div: 12.09 nanoseconds
float bogomflops: 4.57 nanoseconds
double bogomflops: 7.49 nanoseconds
integer bit parallelism: 3.08
integer add parallelism: 3.12
integer mul parallelism: 4.00
integer div parallelism: 1.84
integer mod parallelism: 2.41
int64 bit parallelism: 3.00
int64 add parallelism: 3.01
int64 mul parallelism: 4.00
int64 div parallelism: 1.41
int64 mod parallelism: 1.51
float add parallelism: 3.67
float mul parallelism: 5.42
float div parallelism: 1.58
double add parallelism: 3.55
double mul parallelism: 6.98
double div parallelism: 1.15
File /var/tmp/lmbench/XXX write bandwidth: 53575 KB/sec
Pagefaults on /var/tmp/lmbench/XXX: 17.6683 microseconds
UDP latency using localhost: 170.7215 microseconds
TCP latency using localhost: 174.0352 microseconds
RPC/udp latency using localhost: 145.2927 microseconds
RPC/tcp latency using localhost: 190.2122 microseconds
connect: Cannot assign requested address
connect: Cannot assign requested address
54
APÊNDICE B: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO WINDOWS NA MÁQUINA VMWARE
Process fork+/bin/sh -c: 2807.0000 microseconds
integer bit: 0.50 nanoseconds
integer add: 0.25 nanoseconds
integer mul: 0.15 nanoseconds
integer div: 10.33 nanoseconds
integer mod: 10.84 nanoseconds
int64 bit: 0.50 nanoseconds
uint64 add: 0.25 nanoseconds
int64 mul: 0.35 nanoseconds
int64 div: 22.16 nanoseconds
int64 mod: 21.69 nanoseconds
float add: 1.51 nanoseconds
float mul: 2.01 nanoseconds
float div: 7.78 nanoseconds
double add: 1.51 nanoseconds
double mul: 2.51 nanoseconds
double div: 11.80 nanoseconds
float bogomflops: 6.05 nanoseconds
double bogomflops: 10.12 nanoseconds
integer bit parallelism: 2.87
integer add parallelism: 3.01
integer mul parallelism: 4.00
integer div parallelism: 1.85
integer mod parallelism: 2.26
int64 bit parallelism: 2.56
int64 add parallelism: 2.98
int64 mul parallelism: 4.00
int64 div parallelism: 1.41
int64 mod parallelism: 1.24
float add parallelism: 3.00
float mul parallelism: 4.01
float div parallelism: 1.34
double add parallelism: 3.00
double mul parallelism: 5.00
double div parallelism: 1.20
File /var/tmp/lmbench/XXX write bandwidth: 83081 KB/sec
Pagefaults on /var/tmp/lmbench/XXX: 5.1249 microseconds
UDP latency using localhost: 20.2098 microseconds
TCP latency using localhost: 44.3202 microseconds
RPC/udp latency using localhost: 33.8821 microseconds
RPC/tcp latency using localhost: 56.2373 microseconds
TCP/IP connection cost to localhost: 52.2959 microseconds
55
APÊNDICE C: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO LINUX NA MÁQUINA VIRTUALBOX
Process fork+/bin/sh -c: 8975.3937 microseconds
integer bit: 0.37 nanoseconds
integer add: 0.18 nanoseconds
integer mul: 0.11 nanoseconds
integer div: 7.48 nanoseconds
integer mod: 7.87 nanoseconds
int64 bit: 0.37 nanoseconds
uint64 add: 0.18 nanoseconds
int64 mul: 0.25 nanoseconds
int64 div: 16.07 nanoseconds
int64 mod: 15.77 nanoseconds
float add: 1.14 nanoseconds
float mul: 1.48 nanoseconds
float div: 5.69 nanoseconds
double add: 1.10 nanoseconds
double mul: 1.83 nanoseconds
double div: 8.64 nanoseconds
float bogomflops: 4.42 nanoseconds
double bogomflops: 7.37 nanoseconds
integer bit parallelism: 2.88
integer add parallelism: 3.11
integer mul parallelism: 4.00
integer div parallelism: 1.85
integer mod parallelism: 2.28
int64 bit parallelism: 2.57
int64 add parallelism: 3.01
int64 mul parallelism: 4.01
int64 div parallelism: 1.41
int64 mod parallelism: 1.24
float add parallelism: 3.02
float mul parallelism: 4.00
float div parallelism: 1.34
double add parallelism: 3.01
double mul parallelism: 5.01
double div parallelism: 1.20
UDP latency using localhost: 194.0536 microseconds
TCP latency using localhost: 252.2860 microseconds
RPC/udp latency using localhost: 224.4395 microseconds
RPC/tcp latency using localhost: 266.9244 microseconds
TCP/IP connection cost to localhost: 55.8020 microseconds
56
APÊNDICE D: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO LINUX NA MÁQUINA VMWARE
integer bit: 0.36 nanoseconds
integer add: 0.18 nanoseconds
integer mul: 0.11 nanoseconds
integer div: 7.35 nanoseconds
integer mod: 7.74 nanoseconds
int64 bit: 0.36 nanoseconds
uint64 add: 0.18 nanoseconds
int64 mul: 0.25 nanoseconds
int64 div: 15.80 nanoseconds
int64 mod: 15.42 nanoseconds
float add: 1.08 nanoseconds
float mul: 1.43 nanoseconds
float div: 5.56 nanoseconds
double add: 1.07 nanoseconds
double mul: 1.79 nanoseconds
double div: 8.38 nanoseconds
float bogomflops: 4.32 nanoseconds
double bogomflops: 7.18 nanoseconds
integer bit parallelism: 2.87
integer add parallelism: 3.09
integer mul parallelism: 4.00
integer div parallelism: 1.85
integer mod parallelism: 2.27
int64 bit parallelism: 2.56
int64 add parallelism: 3.00
int64 mul parallelism: 4.00
int64 div parallelism: 1.41
int64 mod parallelism: 1.24
float add parallelism: 3.01
float mul parallelism: 4.02
float div parallelism: 1.34
double add parallelism: 3.01
double mul parallelism: 5.02
double div parallelism: 1.21
File /var/tmp/lmbench/XXX write bandwidth: 243084 KB/sec
UDP latency using localhost: 15.2951 microseconds
TCP latency using localhost: 86.3218 microseconds
RPC/udp latency using localhost: 19.4773 microseconds
RPC/tcp latency using localhost: 48.1200 microseconds
TCP/IP connection cost to localhost: 54.2828 microseconds