Xen vs VirtualBox sob carga pesada?

9

Qual funciona melhor sob uso pesado de CPU e memória nos servidores virtuais, Xen ou VirtualBox?

    
por chaos 04.05.2009 / 16:28

3 respostas

24

O Xen geralmente funciona muito melhor que o VirtualBox, porque o VirtualBox executa o sistema operacional convidado de uma forma que o sistema operacional convidado não sabe que está sendo executado em um ambiente virtual. Ou, em outras palavras, o sistema operacional convidado não é modificado para ser executado virtualmente. Devido a isso, o VirtualBox tem que 'capturar' instruções de tipo de kernel, executar algum código customizado e, em seguida, retornar o controle para o convidado. Ele pode usar o suporte de virtualização de hardware fornecido pela Intel e pela AMD, mas mesmo assim a sobrecarga é acrescentada.

O Xen, entretanto, garante que o sistema operacional convidado seja recompilado para se adequar ao modelo Xen. Assim, o controle flui suavemente do sistema operacional convidado para o hipervisor, sem a sobrecarga de ter que fingir que o sistema operacional convidado tem acesso direto ao hardware.

Para obter uma visão geral de algumas tecnologias de virtualização, incluindo dados de testes de desempenho, leia este relatório . Ele só fala sobre o Linux, mas ele cobre Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox e QEMU. O Linux-Vserver e o Xen eram geralmente os de melhor desempenho, mas leram o relatório para ver as diferentes cargas de trabalho.

Dito tudo isso, pode haver algumas áreas onde o VirtualBox supera o Xen. Se o seu sistema operacional convidado tiver uma camada de janelas gráfica, o VirtualBox terá um bom suporte para isso, especialmente se você instalar alguns componentes especiais do VirtualBox no sistema operacional convidado.

E, finalmente, você deve estar ciente de que o Xen só executará um sistema operacional convidado modificado. Não é possível executar um sistema operacional convidado não modificado.

    
por 04.05.2009 / 17:00
28

A resposta de Hamish Downer está equivocada em seu último ponto. O Xen pode executar convidados não modificados, mas eles precisam ser executados como convidados do HVM, que são totalmente virtualizados. Isso exige que o computador host tenha suporte de virtualização de hardware com CPUs Intel VT ou AMD-V.

O Xen e o Virtualbox têm um lugar, mas são dois tipos diferentes de hipervisores. O Xen é um hypervisor Tipo 1, no qual o Virtualbox é um hypervisor Tipo 2. Os hipervisores de tipo 1 tendem a ser o que você encontra em ambientes de servidor, nos quais hipervisores de Tipo 2 tendem a ser mais comuns para a execução de vários sistemas operacionais com os quais você interage como desktops. Eu acho que isso é principalmente devido à sua simplicidade e melhor integração de desktop. No entanto, os convidados em um hipervisor tipo 2 estão mais longe do hardware subjacente e tendem a ser mais lentos do que os convidados em um hipervisor tipo 1. Como em tudo, sempre haverá uma exceção à regra.

    
por 29.05.2009 / 23:11
2

Eu só posso falar sobre o Xen, já que eu só usei o Virtualbox para virtualizar uma máquina Windows no meu desktop mac.

Como outros já mencionaram, o Xen (e o XenServer, que é baseado no Xen) usa kernels paravirtualizados que melhoram drasticamente as características de desempenho ligadas ao Cpu e à Memória. No entanto, isso é válido apenas para hosts Linux com kernels especializados. Você precisa de um kernel "habilitado" para poder tirar proveito disso.

Além disso, o Windows não suporta ser virtualizado dessa maneira, mas as extensões Intel VT e AMD-V em suas respectivas CPUs "capturam" o Windows e fazem com que ele se comporte de uma maneira paravirtualizada. O Windows 2003 eo Windows 2000 nunca estão cientes de que estão executando virtualizados, enquanto o Windows 2008, por outro lado, detecta isso e é executado no chamado modo "iluminado", que pode ser comparado ao modo "paravirtualizado" do Linux.

    
por 31.05.2009 / 12:35