Qual é o desempenho melhor em uso pesado de CPU e memória nos servidores virtuais, Xen ou VirtualBox?
Qual é o desempenho melhor em uso pesado de CPU e memória nos servidores virtuais, Xen ou VirtualBox?
O Xen geralmente terá um desempenho muito melhor que o VirtualBox porque o VirtualBox executa o SO convidado de uma maneira que o SO 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. Por isso, o VirtualBox precisa 'interceptar' as instruções do tipo de kernel, executar algum código personalizado e retornar o controle ao convidado. Ele pode usar o suporte de virtualização de hardware fornecido pela Intel e AMD, mas mesmo assim a sobrecarga aumenta.
Enquanto isso, o Xen garante que o SO convidado seja recompilado para se ajustar ao modelo Xen. Portanto, o controle flui sem problemas do SO convidado para o hypervisor, sem a sobrecarga de ter que fingir que o SO convidado tem acesso direto ao hardware.
Para uma visão geral de algumas tecnologias de virtualização, incluindo dados de testes de desempenho, leia este relatório . Ele fala apenas sobre Linux, mas abrange Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox e QEMU. O Linux-Vserver e o Xen foram geralmente os melhores desempenhos, mas leia o relatório para ver as diferentes cargas de trabalho.
Dito isto, algumas áreas em que o VirtualBox supera o Xen. Se o sistema operacional convidado tiver uma camada gráfica de janelas, o VirtualBox terá um bom suporte para isso, principalmente se você instalar alguns componentes especiais do VirtualBox no sistema operacional convidado.
E, finalmente, você deve estar ciente de que o Xen executará apenas um SO convidado modificado. Ele não pode executar um sistema operacional convidado não modificado.
A resposta de Hamish Downer está errada em seu último ponto. O Xen pode executar convidados não modificados, no entanto, eles precisam ser executados como convidados da HVM totalmente virtualizados. Para fazer isso, é necessário que o computador host tenha suporte à virtualização de hardware com CPUs compatíveis com Intel VT ou AMD-V.
O Xen e o Virtualbox têm um lugar, mas são dois tipos diferentes de hipervisores. Xen é um hipervisor Tipo 1 em que o Virtualbox é um hipervisor Tipo 2. Os hipervisores tipo 1 tendem a ser o que você encontra em ambientes de servidor em que os hipervisores tipo 2 tendem a ser mais comuns para a execução de vários SOs com os quais você interage como desktops. Eu acho que isso se deve principalmente à sua simplicidade e melhor integração com a área de trabalho. No entanto, os convidados em um hipervisor tipo 2 estão mais distantes do hardware subjacente e tendem a ser mais lentos que os convidados em um hipervisor tipo 1. Como em tudo, sempre haverá uma exceção à regra.
fonte
Só posso falar sobre o Xen, pois 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 associadas à CPU e à Memória. No entanto, isso é verdadeiro apenas para hosts Linux com kernels especializados. Você precisa de um kernel Xen "ativado" para poder tirar vantagem 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 o fazem se comportar de maneira paravirtualizada. O Windows 2003 e o Windows 2000 nunca sabem 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.
fonte