Xen vs. KVM em desempenho

36

O que é mais rápido no mesmo hardware, Xen ou KVM?

Estou tentando escolher uma tecnologia de virtualização para funcionar, que ofereça o melhor desempenho.

Existem algumas referências aqui que encontrei sobre o assunto: http://virt.kernelnewbies.org/XenVsKVM

Eles mostram a KVM como vencedora, com uma diferença significativa no desempenho - o que contraria a ideia de que a KVM é um hipervisor tipo 2 e, por definição, deve ser mais lenta que os hipervisores tipo 1 (como Xen) - ou pelo menos artigos na web dizem.

Alguma idéia sobre o assunto?

SyRenity
fonte
Essa comparação parece muito ruim, pois compara KVM + 1xVM e Xen + 1VM ... Qual é o sentido de ter virtualização se você tiver apenas na VM?
Antoine Benkemoun 17/07/09
KVM NÃO é um hipervisor tipo 2. Definitivamente, é do tipo 1 e é definitivamente mais próximo do hardware do que o Xen. Então, sim, dadas exatamente as mesmas condições, o KVM deve ter um desempenho melhor, especialmente com os drivers modernos do virtIO #
dyasny
Se você está lendo isso em 2017 (alguém fez uma edição trivial da pergunta), perceba que essa pergunta e suas respostas estão com OITO ANOS DE IDADE . O cenário KVM vs Xen é muito diferente agora.
thomasrutter

Respostas:

33

Esse benchmark está apenas comparando a velocidade do sistema operacional nativo com um único sistema operacional convidado. Dificilmente é um teste do mundo real. Eu não acho que eu colocaria muito peso nisso. A maior parte do campo da KVM argumenta que o Xen requer muitas interrupções e saltos entre o kernel e o espaço do usuário, mas da maioria dos benchmarks do mundo real que eu vi que realmente não foi realizado e o Xen parece ser um pouco mais rápido do que KVM.

Desculpe, não tenho um link para fazer backup disso. Mas direi que o KVM está melhorando rapidamente e parece estar alcançando rapidamente o conjunto de recursos e a estabilidade.

Quanto a qual abordagem é melhor. O campo Xen argumentará que um verdadeiro hipervisor leve é ​​necessário que a virtualização seja segura e rápida. O Xen também está começando a ser suportado no firmware por alguns fornecedores, o que também é bom. O campo da KVM argumentará que a KVM é mais simples e que o Linux é capaz de ser um bom hipervisor.

No final, ainda não está claro qual direção vencerá. O Xen certamente tem um avanço e já possui uma boa participação de mercado. Mas ainda não está no kernel da linha principal. Espero que isso mude em breve e certamente tenha havido muita conversa sobre isso na lista de kernel nos últimos meses. A Red Hat está no campo da KVM agora e estará promovendo a plataforma de virtualização de sua escolha. O Red Hat Linux 5.4, que será lançado em breve, será o primeiro a incluí-lo. Portanto, isso provavelmente atrairá lojas que ainda não lançaram ou se comprometeram com uma plataforma de virtualização.

No que diz respeito às ferramentas, o Xen e o KVM usam libvirt e QEMU e as ferramentas associadas a eles. Então, eles compartilham muitas das mesmas ferramentas, como virt-manager.

Usamos o Xen no trabalho e funciona bem para nós. Mas eu estive pesquisando o KVM devido a alguns problemas de encaminhamento USB e de passagem do PCI que não consegui resolver com o Xen. Não tenho certeza se o KVM é melhor nisso, mas acho que vou descobrir quando tentar. Uma coisa que notei ao pesquisar meus problemas de USB é que a documentação da KVM é mais avaliada e organizada em comparação com a do Xen. Mas como não existe uma plataforma de virtualização perfeita, você precisará descobrir o que faz sentido para você.

3dinfluence
fonte
Alguma idéia se o mesmo será válido no futuro? Como o Redhat 5.4 está chegando em breve, com suporte nativo ao KVM, eu gostaria de saber o que não precisarei mudar para o KVM do Xen em 1/2 ano. Obrigado.
218 SyRenity
1
Não posso fazer previsões sobre o que o futuro reserva. Mas nenhuma dessas plataformas vai desaparecer. A RedHat disse que está comprometida em apoiar o Xen e a KVM. Só o tempo dirá como este se desenrola. Mas não me preocuparia em mudar em seis meses. Talvez em alguns anos haja um líder claro nas plataformas de virtualização de código aberto.
3dinfluence
Interessante notar que você se mudou para o KVM para suporte a USB - eu apenas tive que pensar em me mudar devido à falta de suporte a USB 2.0! Estou supondo pelo seu post que o Xen não será muito melhor.
Jkp
1
@jkp Eu estava esperando a substituição de algumas outras partes da nossa infraestrutura. O que acabou de ser concluído. Portanto, nas próximas semanas, poderei olhar mais de perto a KVM. No entanto, no meu caso, o hardware não suporta IOMMU (VTd). Portanto, não tenho certeza se a mudança para o KVM ajudará. O XEN requer suporte do IOMMU para passagem de pci. Mas o KVM suporta a passagem de elementos USB e PCI usando libvirt. Então, espero que funcione sem o IOMMU. No momento, no Xen, a única maneira pela qual sei passar o USB é passar o controlador USB PCI, mas essas informações podem estar datadas neste momento.
3dinfluence
1
@ 3dinfluence: Eu acho que você pode entender mal como o suporte a USB e PCI é implementado - libvirt não faz nada disso sozinho, apenas fornece uma maneira de configurar os recursos subjacentes do hypervisor VM. Nesse caso, os recursos são fornecidos por uma combinação dos módulos do kernel do KVM e o código do espaço do usuário do Qemu.
jkp
7

Eu, pessoalmente, escolheria a virtualização com base na usabilidade, suporte, confiabilidade e adequação para as máquinas virtuais que você está usando.

As taxas de transferência de dados da rede Xen parecem ser tão boas quanto o hardware real, mas também tive algumas batalhas com o Xen e vLans e várias placas Ethernet. Não tenho experiência com KVM, mas também sugiro que você considere o VMware ESX (i).

Michael Shaw
fonte
1
O desempenho de E / S do servidor VMware é muito, muito ruim. Se você precisar usar o vmware, use esx.
ko-dos
6

FWIW: A resposta depende inteiramente de suas necessidades, agora e no futuro.

Sim, eu sei que é uma resposta inútil. Infelizmente é verdade. Sua escolha de virtualização afetará praticamente tudo o que você fará depois, portanto, faça algumas perguntas a si mesmo.

(1) A diferença entre 97% do desempenho nativo e 96% do desempenho nativo (números retirados do ar) é realmente importante para você?

(1a) Se um se sair melhor com o acesso HD (o que realmente significa que você está usando um excelente banco de dados ou não pode pagar a RAM extra), e o outro se sair melhor com a rede, o que é mais importante para você ?

(2) Você está confiante ao usar as ferramentas fornecidas com qualquer uma das soluções?

(3) O fato de um ser (mais ou menos) nativo dos kernels recentes do Linux e o outro não fazer diferença?

(3a) Você agora, ou já esteve ... er ... será necessário executar um sistema operacional diferente sob virtualização? Não precisa ser o Windows. Pode ser o FreeBSD, ou mesmo o Haiku, ou qualquer outra coisa. (O Xen provavelmente vence aqui, mas sugiro que verifique.)

Olhando para o cenário geral, vejo o KVM como a resposta do Linux para as zonas Solaris. (Prefiro ter zonas Solaris, mas vejo o paralelo.) Vejo o Xen como uma tecnologia madura de hipervisor com suporte para vários sistemas operacionais, mas se você não precisar de vários sistemas operacionais, isso não importa muito.

Para ser absolutamente honesto, você não pode dar muito errado de qualquer maneira (dadas as advertências acima). Eu prefiro o Xen, porque fui para Cambridge; mas, se eu trabalhasse para RH, provavelmente preferiria o KVM.


fonte
6

Você encontrará informações muito interessantes sobre o assunto na seguinte apresentação: Comparação quantitativa de Xen e KVM

A pessoa que fez isso é um especialista em Xen, mas a comparação parece bastante justa.

Antoine Benkemoun
fonte
Obrigado pela apresentação, lendo parece que, enquanto o Xen está no topo da CPU e da rede, o KVM é superior no HD. Mas ler esses números ( virt.kernelnewbies.org/XenVsKVM ) parece que a KVM ganhou as mãos em todas as comparações. Alguma idéia de onde está a verdade? :)
SyRenity 18/07/2009
Acredito que minha apresentação parece mais realista. Ele executa mais de uma VM por vez. O protocolo de teste parece mais próximo da realidade.
Antoine Benkemoun 19/07/2009
+1 apresentação interessante! Xen parece ter melhor isolamento.
Jonas
5

Eu posso estar me irritando aqui, mas não acho que o desempenho bruto seja a métrica mais importante quando se trata de tecnologias como essa.

Penso que a usabilidade e a interface são importantes, bem como as ferramentas para suportar uma infraestrutura confiável. Parece-me que o Xen tem um conjunto muito mais robusto de aplicativos existentes que o suportam do que o KVM. Pode não ser o caso, pois não tenho provas para fazer o backup.

O que quer que você escolha, decida qual a melhor solução para você e observe todo o pacote, não apenas o desempenho bruto.

Matt Simmons
fonte
Você precisa dar uma olhada no RHEV - o gerenciamento é muito simples e fácil de usar.
dyasny
2

Muitas das dificuldades ou facilidades na configuração do KVM dependem da distribuição. Escolher uma distribuição centrada no Xen tornará o Xen mais fácil. Escolher uma distribuição centrada na KVM tornará a KVM mais fácil.

A questão das ferramentas é um tanto irrelevante porque ambos usam libvirt. Isso significa que você usa as mesmas ferramentas de gerenciamento para ambos na maioria dos casos.


fonte
1

No final de 2017, a Amazon, que anteriormente era o maior usuário do Xen, anunciou que usará o KVM para todos os novos tipos de instância C5 . Que eu saiba, apenas o provedor de nuvem SoftLayer é deixado como um grande usuário do Xen. O Linode mudou em 2015 e relatou importantes melhorias de desempenho .

É difícil encontrar uma comparação realista e atualizada do desempenho, mas não parece haver uma lacuna tão grande entre as duas soluções quanto você imagina. Dependendo do caso de uso, o Xen pode ser ainda mais rápido. O KVM tem outros benefícios, sendo parte do kernel do Linux e adotado pelo RedHat, que também são relevantes. Por exemplo, esta resposta explica por que o Google escolhe o KVM para o Google Compute Engine.

Ainda assim, o fato de quase todos os provedores de nuvem, especialmente Google e Amazon, estarem escolhendo o KVM em vez do Xen é um forte argumento de que, para cargas de trabalho típicas, o KVM é uma escolha muito boa em termos de desempenho.

Philipp Claßen
fonte
Nota: A Amazon usa a versão modificada do KVM, não a nativa. E eu não diria que eles têm cargas de trabalho típicas, provavelmente têm cargas de trabalho muito pesadas e incomuns, imho
ALex_hha
@ALex_hha O que eu quis dizer é que eles precisam escolher uma tecnologia que funcione melhor para os aplicativos que seus clientes executarão. Nesse sentido, eles precisam encontrar uma configuração rápida em diferentes casos de uso. Mas concordo que existem outros cenários, como sistemas embarcados, nos quais o Xen pode ser comparável mais favoravelmente.
Philipp Claßen