KVM e Libvirt: má CPU / desempenho de rede do convidado

0

Eu tenho um host do Arch Linux que executa roteador virtualizado.

Ao usar um convidado LXC como roteador, tudo está bem. Eu tenho 100MBits Up / Down e quase nenhum uso da CPU.

No entanto, quando uso o libvirt gest (pfSense FreeBSD) como um roteador, sempre que há tráfego pesado na rede passando pelo convidado, o uso da CPU fica excessivamente alto (até 100%), mas o pior é que a taxa de transferência da rede é dividido ao meio! Eu tenho 45-49Mbits max.

O host não suporta passagem de PCI, portanto, esta é minha configuração para a VM libvirtd:

Nic1 (wan)
Network source: Direct ‘eth0’
Source mode: passthrough
Device model: virtio

Nic2 (lan)
Bridge name: br0
Device model: virtio

Eu tentei o e1000, mas ele não muda absolutamente nada.

Host CPU: AMD A4-5000 Kabini
Guest CPU: default or Opteron_G3

O polling de hardware no pfSense está desativado, e o ifconfig do pfSense mostra isso: link

Isso acontece há mais de um ano, desde que comecei a usar o KVM. Se eu não resolver esse problema, terei que descartar o libvirt porque esse desempenho é inaceitável.

    
por lockheed 18.12.2016 / 01:44

1 resposta

1

Isso tem a ver com os drivers do FreeBSD para o Virtio, eles simplesmente não estão aptos a executar tão rápido quanto os drivers Linux.

link

^^ o acima é uma postagem que detalha algumas coisas que você pode fazer para ajudar a desligar o Hardware Checksum Offload no guest e host e também nas configurações do pfSense (não se esqueça de reinicializar a VM antes de testar novamente).

Eu tenho tentado executar o pfSense no topo do Proxmox (base Debian) e em interfaces de gig no bare metal obter 940-980 Mbps, mas no convidado VM obter um máximo de 650-700 Mbps.

    
por 20.12.2016 / 12:07