quarta-feira, 11 de maio de 2016

FreeBSD: ISO Padrão ou preparado para Virtualização (Virtual Machine image)

O FreeBSD é um sistema operacional baseado no UNIX, é um "concorrente" do Linux.
Este sistema operacional é conhecido por sua Estabilidade, Robustez, Velocidade e Segurança, se comparado com outros sistemas operacionais (em ambiente não virtualizado). Mas, hoje é raro ambiente que não seja virtualizado.

Quando virtualizado, o FreeBSD perde muita performance, se comparado com o Linux. Então, os desenvolvedores resolveram criar uma imagem personalizada para virtualização, ela é chamada de "FreeBSD Virtual Machine Image".

O objetivo deste post é comparar o desempenho do FreeBSD padrão com o preparado para virtualização em um ambiente Virtualizado. Será que tem vantagens ou é apenas frescura?

1. Host (máquina física) utilizado no teste

A máquina utilizada para realizar os testes possui as seguintes características:
Memória RAM: 8 GB
Processador: Intel i5
Disco: 1TB SATA2

É um desktop convencional. Nada de mais!

2. Imagens

O FreeBSD pode ser baixado AQUI. As máquinas virtuais dos testes possuem as seguintes características:
Memória RAM: 1 GB
Processador: 4 CPUs


São dois tipos de imagem:

2.1. Virtual Machine Image

A versão preparada para virtualização só está disponível para as arquiteturas: i386 e AMD64.
Está disponível para vários tipos de hypervisors e formatos de arquivos:
vhd: VirtualPC, Hyper-V, Xen, VirtualBox
vmdk: VMWare
qcow2: Qemu, KVM, VirtualBox
raw: bhyve, ou outro hypervisors com suporte ao formato "raw disk image".

No caso do teste, foi selecionado o "FreeBSD-10.3-RELEASE-i386.vhd.xz". Basta descompactar e criar uma nova máquina virtual no VirtualBox, e selecionar o arquivo baixado com o disco da VM, conforme mostrado abaixo:
VirtualBox: FreeBSD Virtual Machine image
A máquina virtual já vem instalada, mas está zerada. É necessários executar alguns comandos:

Ativar IP na máquina:
# dhclint em0

Baixar os pacotes para instalação de outros softwares:
# portsnap fetch
# portsnap extract

Instalar as ferramentas de teste:
# cd /usr/ports/security/john
# make install
# cd /usr/ports/benchmark/iperf
# make install

2.2. Imagem padrão do FreeBSD

Este é o tipo mais comum de se instalar o FreeBSD. É tão simples que não entrarei em detalhes. Também é necessário instalar as ferramentas de teste, conforme mostrado no item anterior.

3. Teste de performance

O Teste consiste em testar a velocidade de Gravação em disco, Processamento com openssl (criptografia) e rede com Iperf.

3.1. Teste de Gravação em disco

O comando "dd" foi utilizado para testar a performance de gravação do disco. O comando utilizado para gerar um arquivo de 5GB:

# dd if=/dev/zero of=dados.dat bs=10000000 count=512

FreeBSD preparado para Virtualização. Teste gravação em disco.
FreeBSD padrão. Teste de gravação em disco.
O teste foi realizado três vezes seguidas, e o resultado foi a média dos valores.
Resultado final de gravação:


Gravação em Disco com o DD FreeBSD Preparado para Virtualização FreeBSD Padrão
Tentativa 01 47,3 MB/s 51,3 MB/s
Tentativa 02 48,5 MB/s 51,2 MB/s
Tentativa 03 49,8 MB/s 50,8 MB/s
Média Final 48,5 MB/s 51,1 MB/s

Diferente do resultado esperado, a VM com FreeBSD padrão teve performance de gravação 5% superior a VM com FreeBSD preparada para virtualização.

Obs.: No host, máquina utilizada para virtualizar as MV acima, o mesmo comando fez a gravação em 110MB/s.

3.2. Teste Processamento com openssl - rsa 4096

Para testar o processamento das máquinas virtuais foi utilizado a ferramenta "openssl". O teste consiste em identificar a quantidade de verificação RSA de 4096 bits as MVs fazem por segundo. Isto é criptografia pura e usa muito CPU. Comando executado:
# openssl speed rsa4096

FreeBSD preparada para Virtualização. Teste de processamento com openssl.
FreeBSD padrão. Teste de processamento com openssl.

Resultado final do teste de processamento:


Processamento com o openssl – RSA 4096 FreeBSD Preparado para Virtualização FreeBSD Padrão
Tentativa 01 1771,8 1855,2
Tentativa 02 1844,6 1783,0
Tentativa 03 1774,1 1770,3
Média Final 1796,8 1802,8

No teste de processamento, também teve resultado inesperado: A VM com FreeBSD padrão teve desempenho de CPU levemente superior a VM preparada para virtualização.

Obs.: No host, a medida foi de: 1820,3.

3.3. Teste de velocidade de Rede

O "iperf" é uma ferramenta simples para testar a velocidade de rede entre duas máquinas, para saber mais leia aqui. A versão é a 2.0.5.
O ambiente de teste foi montado em cima de rede gigabit Ethernet.
Neste caso, o teste também foi repetido três vezes e o resultado final é a média dos testes.
A máquina virtual assumiu o lado client do iperf, comando:
# iperf -c IP_SERVIDOR_IPERF
Outra máquina, identificado por IP_SERVIDOR_IPERF acima, não é virtualizada. Ela está na rede e fez papel de servidor, nos dois casos.
FreeBSD preparado para Virtualização. Teste de rede com IPERF.
FreeBSD padrão. Teste de rede com IPERF.

Resultado final do teste de rede:


Velocidade de rede com o iperf FreeBSD Preparado para Virtualização FreeBSD Padrão
Tentativa 01 407 Mbits/s 403 Mbits/s
Tentativa 02 409 Mbits/s 409 Mbits/s
Tentativa 03 413 Mbtis/s 421 Mbits/s
Média Final 409,66 Mbits/s 411 Mbtis/s

Mais uma vez, a VM padrão do FreeBSD se mostrou mais performática que a VM preparada para Virtualização.

Obs.: No host, o teste chegou a 821 Mbits/s.

4.0 Resultado final dos testes

A tabela abaixo apresenta o resumo dos testes nos dois FreeBSD:


Teste \ VM FreeBSD Preparado para Virtualização FreeBSD Padrão Diferença
Gravação em Disco 48,5 MB/s 51,1 MB/s 5,09%
Performance de Rede 409,66 Mbits/s 411 Mbtis/s 0,33%
Velocidade de Processamento 1796,8 1802,8 0,22%

Os três testes mostraram que o desempenho da Máquina Virtual de FreeBSD padrão é mais performático com a VM preparada para virtualização.

5.0 Conclusão

O FreeBSD é um Sistema Operacional muito apreciado pelos usuários tradicionais, ele não aparece muito na mídia, igual o Linux.
Ambientes não virtualizados é praticamente impossível nos dias de hoje. E, geralmente, o Linux é superior ao FreeBSD em ambientes Virtualizados. Isto fez com que o uso do FreeBSD caísse ainda mais.
Os testes mostraram que o FreeBSD preparado para virtualização NÃO aumenta o desempenho, pelo contrário: nos três testes (gravação de disco, Rede e Processamento) ele possui performance inferior.
Infelizmente o FreeBSD irá continuar a perder espaço para o Linux.

Nenhum comentário:

Postar um comentário